php7 undefined function mcrypt_module_open openssl替换方法
php7 undefined function mcrypt_module_open openssl替换方法
php7 undefined function mcrypt_module_open openssl替换方法
$data = '1234567887654321';//加密明文
$method = 'DES-ECB';//加密方法
$passwd = '12344321';//加密密钥
$options = 0;//数据格式选项(可选)
$iv = '';//加密初始化向量(可选)
$method 加密方法
DES-ECB
DES-CBC
DES-CTR
DES-OFB
DES-CFB
$result = openssl_encrypt($data, $method, $passwd, $options);
解密
openssl_decrypt($result, $method, $passwd, 0);
注意填充方式
OPENSSL_RAW_DATA方式【会用PKCS#7进行补位】
OPENSSL_ZERO_PADDING 0填充
OPENSSL_NO_PADDING 无填充
**
需要注意:如果method为DES-ECB,则method为DES-ECB,则method为DES-ECB,则iv无需填写
如果为AES 方式需要传iv 16位字符串
**
加密方式OPENSSL_RAW_DATA这种方式填充结果是乱码需要base64_encode一下
解密时先base64_decode
补充php解密JAVA的DESede/ECB/PKCS5Padding方式
$str="aaaaaa"; //加密字符串
$pass="bbbbbbbbbb"; //加密密钥
$txt = openssl_decrypt(base64_decode($str),'DES-EDE3',$pass,OPENSSL_NO_PADDING);
var_dump($txt);
如果出现乱码则用hex2bin转换为二进制
$str="aaaaaa"; //加密字符串
$pass="bbbbbbbbbb"; //加密密钥
$txt = openssl_decrypt(base64_decode($str),'DES-EDE3',hex2bin($pass),OPENSSL_NO_PADDING);
var_dump($txt);
php7 undefined function mcrypt_module_open openssl替换方法