总有些时候我们前端需要对数据做加密,因为 安全 (前端的安全基本都是纸老虎)
,但是我们又不得不去做这么一步。那么有什么好推荐的加密工具么,答案是,有!
crypto-js
crypto-js是个很流行的js加密算法库,可以前端js中使用,也可以在后端的nodejs开发中使有,目前crypto-js已支持的算法有:MD5,SHA-1,SHA-256,AES,Rabbit,MARC4,HMAC,HMAC-MD5,HMAC-SHA1,HMAC-SHA256,PBKDF2等。
引用
npm install crypto-js
封装方法
const CryptoJS = require('crypto-js'); // 引用
const key = CryptoJS.enc.Utf8.parse('你的密钥,要换成16位字符串'); // 十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('你的密钥偏移量,要换成16位字符串'); // 十六位十六进制数作为密钥偏移量
// 解密方法
const Decrypt = function (word) {
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
let decrypt = CryptoJS.AES.decrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
};
// 加密方法
const Encrypt = function (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
});
return encrypted.ciphertext.toString().toUpperCase();
};
export {
Decrypt,
Encrypt
};
使用
import {
Decrypt
} from '@/utils/crypto';
let encrypt_result = Encrypt('需要加密的串');
let decrpt_result = Decrypt('需要解密的串');