在ThinkPHP框架下实现AES加密和解密可以使用PHP的openssl扩展库。具体步骤如下:
extension_loaded('openssl') or die('请开启openssl扩展');
$iv = openssl_random_pseudo_bytes(16);
$ciphertext = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
其中,$data是要加密的数据;'AES-256-CBC'是AES加密算法,采用CBC模式;$key是加密密钥;OPENSSL_RAW_DATA表示以原始数据格式输出;$iv是随机向量。
$plaintext = openssl_decrypt($ciphertext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
其中,$ciphertext是已加密的数据;'AES-256-CBC'表示AES加密算法,采用CBC模式;$key是解密密钥;OPENSSL_RAW_DATA表示以原始数据格式输入;$iv是随机向量。
需要注意的是,$key的长度必须是16、24或32个字符,对应AES-128、AES-192和AES-256加密算法。如果$key的长度不足,可以使用补位函数进行填充。
同时,在使用时还需要注意安全问题,比如存储密钥时需要加密或者其他安全措施等。