js加密为:
<?php
var IV = '1234567890123412';
var KEY = '201707eggplant99'
/**
* 加密
*/
function encrypt(str) {
key = CryptoJS.enc.Utf8.parse(KEY);// 秘钥
var iv= CryptoJS.enc.Utf8.parse(IV);//向量iv
var encrypted = CryptoJS.AES.encrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
return encrypted.toString();
}
console.log(encrypt("你好啊啊啊啊啊。,,,,123123-="))
<?php
$b= openssl_decrypt(base64_decode('TXw083cvDY8dDo+K9/1E0XpM8V4KERsMmRy9gCsWmrADKMtf/+S8skaHUHsftwRMOBucJdiWDlaEdVwC6QSnkg=='),"AES-128-CBC",$this->key,OPENSSL_RAW_DATA,$this->hex_iv);
echo htmlspecialchars($b);
//解密后
// 浣犲ソ鍟婂晩鍟婂晩鍟娿€傦紝,,,123123-=
iconv gbk与uft8都转过了不行的
@胡椒舰长,js的字符串是unicode编码(UTF-16),也许和这个有关
你试试转成UTF-8字节序列再传过去。
网上的教程都有问题。。。。
PHP
JS,需要预先定义钥匙key与VI (window.env.aes_key,window.env.aes_vi)
aes.js(14.13 KB)