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);

 


完。

 

posted @ 2021-07-23 14:39  Tiac  阅读(381)  评论(0编辑  收藏  举报