CBC模式用起来差别不大,就是多了一个iv
还是先来js的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<script src="rollups/aes.js"></script>
<script src="components/pad-zeropadding.js"></script>
<body>
<script>
var key = CryptoJS.enc.Utf8.parse("beijingtiananmen");
var plaintText = 'www.baidu.com'; // 明文
//var plaintText = 'www.baidu.com'; // 明文
var iv=key; //16位字符串
var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {
iv: CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
//padding: CryptoJS.pad.ZeroPadding
});
console.log("加密前:"+plaintText);
console.log("加密后:"+encryptedData); //Pkcs7: WoCzvm6eZiM4/bx5o/CzGw==
//ZeroPadding : cUYmaJktt7P+dqv+Ijds9g==
encryptedData = encryptedData.ciphertext.toString();
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
console.log("解密前hex:"+encryptedHexStr);
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
console.log("解密前:"+encryptedBase64Str);
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
iv