写在后面
最近理解了一下加密算法,在此特作以下总结,便于日后查阅,如果有问题的中央心愿大家能够指出,在此转发认为博主的文章对对称加密和AES加密有粗浅清晰的解说--对称加密及AES加密算法)
什么是AES加密
AES加密的利用场景,AES加密可逆转加密,前后端专用一个秘钥来加密解密
装置
npm install crypto-js --save-dev
引入
import CryptoJS from "crypto-js";
应用
// 加密function encrypt(word, keyStr, ivStr) { keyStr = keyStr ? keyStr : "12345678"; ivStr = ivStr ? ivStr : "123456789"; let key = CryptoJS.enc.Utf8.parse(keyStr); //console.log(key); let iv = CryptoJS.enc.Utf8.parse(ivStr); let src = CryptoJS.enc.Utf8.parse(word); let encrypted = CryptoJS.AES.encrypt(src, key, { iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); // console.log(CryptoJS.enc.Base64.stringify(encrypted.ciphertext),encrypted.toString()); return encrypted.toString();}// 解密function decrypt(word, keyStr, ivStr){ keyStr = keyStr ? keyStr : "12345678"; ivStr = ivStr ? ivStr : "123456789"; var key = CryptoJS.enc.Utf8.parse(keyStr); let iv = CryptoJS.enc.Utf8.parse(ivStr); let base64 = CryptoJS.enc.Base64.parse(word); let src = CryptoJS.enc.Base64.stringify(base64); var decrypt = CryptoJS.AES.decrypt(src, key, { iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); // console.log(decrypt.toString(CryptoJS.enc.Utf8),(decrypt.toString(CryptoJS.enc.Utf8)).toString()); return decrypt.toString(CryptoJS.enc.Utf8);}console.log(encrypt('这是要加密的数据'));console.log(decrypt(encrypt('这是要加密的数据')));
介绍
- ASE加密是对称加密,即应用同一个密钥进行加密解密,
- 须要留神的是前后端须要规定一样的mode和状态,能够参考对称加密及AES加密算法的第5点
"理论开发中应用AES加密须要留神的中央"