AES 加密 解密
一、前端 AES 加密
<script type="text/javascript" src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script> <script> const iv = CryptoJS.enc.Utf8.parse('jmZoasZQ55vBZsLB'); //十六位十六进制数作为密钥偏移量 const key = CryptoJS.enc.Utf8.parse('KlJzsNpKeGyhRLCc'); //十六位十六进制数作为密钥 //加密方法 function getAes(word) { let srcs = CryptoJS.enc.Utf8.parse(word); let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); let hexstr = encrypted.ciphertext.toString(); hexstr = CryptoJS.enc.Hex.parse(hexstr); return CryptoJS.enc.Base64.stringify(hexstr); } console.log(getAes('test2021')); </script>
注意:默认输出是16进制的字符串,需要转成base64格式的字符串才方便后端解密
二、后端解密(php)
$method = 'aes-128-cbc'; $iv = 'jmZoasZQ55vBZsLB'; $key = 'KlJzsNpKeGyhRLCc'; $decrypted = openssl_decrypt($encrypted, $method, $key, 0, $iv);
三、php aes 加密
$method = 'aes-128-cbc'; $iv = 'jmZoasZQ55vBZsLB'; $key = 'KlJzsNpKeGyhRLCc'; $encrypted = openssl_encrypt($data, $method, $secret_key, 0, $iv);
完。