安裝crypto-js
npm i crypto-js --save --save-exact
AES
官網的Demo就沒有一個正確的示例
AES方法是支持AES-128、AES-192和AES-256的,加密過程中使用哪種加密方式取決于傳入key的類型,否則就會按照AES-256的方式加密。
var CryptoJS = require("crypto-js");
// 加密
var str = '123456';
// 密鑰 16 位
var key = '0123456789abcdef';
// 初始向量 initial vector 16 位
var iv = '0123456789abcdef';
// key 和 iv 可以一致
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
var encrypted = CryptoJS.AES.encrypt(str, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 轉換為字符串
encrypted = encrypted.toString();
// mode 支持 CBC、CFB、CTR、ECB、OFB, 默認 CBC
// padding 支持 Pkcs7、AnsiX923、Iso10126
// NoPadding、ZeroPadding, 默認 Pkcs7, 即 Pkcs5
// 解密
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 轉換為 utf8 字符串
decrypted = CryptoJS.enc.Utf8.stringify(decrypted);
經測試正常可使用。
--EOF--