加密工具CryptoJS
2019-11-28 本文已影响0人
萘小蒽
- 下载 CryptoJS
npm install crypto-js --save-dev
- 创建encrypt.js 引入,KP建议让后端传。
//encrypt.js
/**
* 通过crypto-js实现 加解密工具
* AES
* @author: wfk
*/
import CryptoJS from 'crypto-js'
const KP = {
key: '32824659', // 秘钥 16*n:
iv: '1234567812345678' // 偏移量
};
function getAesString(data, key, iv) { // 加密
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
let encrypted = CryptoJS.DES.encrypt(data, key,
{
// iv,
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString(); // 返回的是base64格式的密文
}
function getDAesString(encrypted, key, iv) { // 解密
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
let decrypted = CryptoJS.DES.decrypt(encrypted, key,
{
// iv,
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8); //
}
// AES 对称秘钥加密
const aes = {
en: (data) => getAesString(data, KP.key, KP.iv),
de: (data) => getDAesString(data, KP.key, KP.iv)
};
// BASE64
const base64 = {
en: (data) => CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(data)),
de: (data) => CryptoJS.enc.Base64.parse(data).toString(CryptoJS.enc.Utf8)
};
// SHA256
const sha256 = (data) => {
return CryptoJS.SHA256(data).toString();
};
// MD5
const md5 = (data) => {
return CryptoJS.MD5(data).toString();
};
export {
aes,
md5,
sha256,
base64
};
3. 引入 以及使用
import { aes } from '@/util/encrypt.js';
****
let password = aes.en('12345678'); //3iy6ZPcjJQzOBGxvlgwRDg==