高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥。
要想进行php的AES加解密,首先得了解双方用的加解密模式是什么,如,ECB、CBC、CFB、OFB、CTR、PCBC及GCM等。
其次是填充方式(Padding):由于密钥只能对确定长度的数据块进行处理,而数据的长度通常是可变的,因此需要对最后一块做额外处理,在加密前进行数据填充。常用的模式有PKCS5, PKCS7, NOPADDING。
下面的加解密函数适用于 aes-128-ecb 模式,填充方式(Padding)为 PKCS5 的加解密,且php版本低于7.2的,因为 mcrypt_decrypt()等函数在php高版本中已经被废弃了。
PHP AES加密方法*
/**
* 加密方法
* @param array $input 数据
* @param string $key 秘钥
*/
function encrypt($input, $key) {
$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$input = pkcs5_pad($input, $size);
$td