我正在尝试用CryptoJS创建一个与此JS代码等效的PHP代码:
function aesEncrypt (data) {
const key = 'GSTEGSTEjdfheyhdHSHSHSHDHHDHmdjjdn12ndndn5r=';
const iv = '\0';
const cipher = CryptoJS.AES.encrypt(data, CryptoJS.enc.Base64.parse(key), {
iv: CryptoJS.enc.Utf8.parse(iv), // 解析IV
padding: CryptoJS.pad.Pkcs7,
mode: CryptoJS.mode.CBC
})
return cipher.toString()
}
js代码的结果:pHjpwiyKq7Rf4dFcBMbm1w==
这是我通过阅读其他stackoverflow问题编写的PHP代码。但是它没有返回相同的结果。
$plaintext = "plainText";
$method = 'aes-256-cbc';
$key = base64_encode("GSTEGSTEjdfheyhdHSHSHSHDHHDHmdjjdn12ndndn5r=");
$iv = hex2bin('00000000000000000000000000000000');
$ciphertext = openssl_encrypt(
$plaintext,
$method,
$key,
OPENSSL_RAW_DATA,
$iv
);
$ciphertext = base64_encode($ciphertext);
echo $ciphertext;
PHP代码的结果:+YJOMi2vISmEXIjUZls3MA==
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
尝试这个:
function encryptData($data, $key, $iv) { $cipher = "aes-256-cbc"; $options = OPENSSL_RAW_DATA; $encrypted = openssl_encrypt($data, $cipher, $key, $options, $iv); $encrypted = base64_encode($encrypted); return $encrypted; } $message = "消息"; $key = "我的秘密密钥"; $iv = "我的iv"; $encrypted = encryptData($message, $key, $iv); echo $encrypted;