在ThinkPHP框架下进行接口加密和解密,可以通过使用对称加密算法来实现。常用的对称加密算法有AES和DES等。
首先,需要在ThinkPHP的配置文件(一般为config.php)中定义加密密钥,如:
// 加密密钥
define('API_ENCRYPT_KEY', '1234567890abcdef');
接下来,在需要加密的地方,可以使用如下代码进行加密:
// 待加密的数据
$data = array('name' => '张三', 'age' => 20);
// 将数据转换为JSON格式字符串
$json_str = json_encode($data);
// 加密
$encrypted_str = openssl_encrypt($json_str, 'AES-128-ECB', API_ENCRYPT_KEY, OPENSSL_RAW_DATA);
// 将加密后的数据转换为Base64格式字符串
$base64_str = base64_encode($encrypted_str);
其中,openssl_encrypt()
函数使用了AES-128-ECB对称加密算法进行加密,API_ENCRYPT_KEY
为加密密钥,OPENSSL_RAW_DATA
表示使用原始数据进行加密。
最后,将加密后的数据转换为Base64格式字符串,方便传输和存储。
在接收到加密数据后,可以使用如下代码进行解密:
// 将Base64格式字符串转换为加密后的数据
$encrypted_str = base64_decode($base64_str);
// 解密
$decrypted_str = openssl_decrypt($encrypted_str, 'AES-128-ECB', API_ENCRYPT_KEY, OPENSSL_RAW_DATA);
// 将解密后的数据转换为JSON格式
$data = json_decode($decrypted_str, true);
其中,openssl_decrypt()
函数使用了AES-128-ECB对称加密算法进行解密,API_ENCRYPT_KEY
为加密密钥,OPENSSL_RAW_DATA
表示使用原始数据进行解密。
最后,将解密后的数据转换为需要的格式即可。