我正在将我的代码从 PHP 5.6 升级到 7.3,这是我的 Ionic 应用程序的 Woocommerce 插件。与此同时,我注意到 mcrypt_decrypt 在 PHP 7 中已被弃用。我试图弄清楚如何更改我的代码,但它仍然没有返回相同的字符串。这是我在应用程序中的加密代码:
var password = this.password;
if (this.appConfig.App_Secret != '') {
var key = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(this.appConfig.App_Secret).toString());
var iv = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(this.appConfig.App_Secret).toString().substr(0, 16));
password = CryptoJS.AES.encrypt(password, key, { iv: iv }).toString();
}
这是我在 PHP 中的旧解密代码:
$iv=substr(md5(get_option('sow_rest_api_secret')),0,16);
$key = md5(get_option('sow_rest_api_secret'));
$data = base64_decode($decrypt_str);
$result = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
return rtrim($result,"\0");
我使用 $result 变量更改行
$result = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
到
$result = openssl_decrypt($data, 'aes-128-gcm', $key, $options=OPENSSL_RAW_DATA, $iv);
你能给予支持吗?
蓝山帝景