外观
crypto-js
177字小于1分钟
2024-09-19
前端加密解密工具crypto-js [npm官网](<https://www.npmjs.com/package/crypto-js)
npm install crypto-js
封装加密工具类
辅助工具,随机秘钥生成器:https://www.lddgo.net/string/randompassword
import CryptoJS from 'crypto-js';
// 采用随机秘钥生成
const secretKey = 'Wd{,wjJk8f$,qRnmYsiE'
//加密
export const aesEncrypt = (word : string, keyStr : string) => {
keyStr = keyStr ? keyStr : secretKey; //判断是否存在ksy,不存在就用定义好的key
const key = CryptoJS.enc.Utf8.parse(keyStr);
const srcs = CryptoJS.enc.Utf8.parse(word);
const encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return encrypted.toString();
}
//解密
export const aesDecrypt = (word : string, keyStr : string) => {
keyStr = keyStr ? keyStr : secretKey;
const key = CryptoJS.enc.Utf8.parse(keyStr);
const decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}
//密钥(长度必须为16位,或者16位的倍数)
export const secretKey