MD5加密:
1.下载
npm i -S js-md5
2.引用
import md5 from "js-md5";
3.使用
md5('password')
AES加密:
1.下载
npm install crypto-js --save-dev
2.在src文件夹下的utils中新建cryptoJS.js文件
3.加密和解密代码
import CryptoJS from 'crypto-js'
import padZeropadding from 'crypto-js/pad-zeropadding';
//前后端需要核对好KEY 、IV 、mode、padding的值,保持一致
const KEY = CryptoJS.enc.Utf8.parse('1234567890ABCDEF');//十六位十六进制数作为密钥
const IV = CryptoJS.enc.Utf8.parse('FEDCBA0987654321');//十六位十六进制数作为密钥偏移量
/*
* AES加密 :字符串 key iv 返回base64
*/
export function myEncrypt(str, keyStr, ivStr) {
let key = KEY
let iv = IV
if (keyStr && ivStr) {
key = CryptoJS.enc.Utf8.parse(keyStr);
iv = CryptoJS.enc.Utf8.parse(ivStr);
}
let srcs = CryptoJS.enc.Utf8.parse(str);
var encrypt = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC, //这里可以选择AES加密的模式
padding: padZeropadding
});
return CryptoJS.enc.Base64.stringify(encrypt.ciphertext);
}
/*
* AES 解密 :字符串 key iv 返回base64
*/
export function myDecrypt(str, keyStr, ivStr) {
let key = KEY
let iv = IV
if (keyStr && ivStr) {
key = CryptoJS.enc.Utf8.parse(keyStr);
iv = CryptoJS.enc.Utf8.parse(ivStr);
}
let base64 = CryptoJS.enc.Base64.parse(str);
let src = CryptoJS.enc.Base64.stringify(base64);
var decrypt = CryptoJS.AES.decrypt(src, key, {
iv: iv,
mode: CryptoJS.mode.CBC, //这里可以选择AES解密的模式
padding: padZeropadding
});
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
4.引用
import {myEncrypt,myDecrypt} from '@/utils/cryptoJS'
5.使用
myEncrypt('xxxxx')//加密
myDecrypt('xxxxx')//解密