预览效果
安装 npm install crypto-js -- 并新建加密方法 crypto-js
import cryptoJs from 'crypto-js'
let keywords = 'yourKey';//加密钥匙
// 加密函數
export function encryption(word) {
let key = cryptoJs.enc.Hex.parse(keywords);
let enc = '';
if (typeof word === 'string') {
enc = cryptoJs.AES.encrypt(word, key, {
// iv: iv
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7
})
} else if (typeof word === 'object') {
let data = JSON.stringify(word);
enc = cryptoJs.AES.encrypt(data, key, {
// iv: iv
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7
})
}
let encResult = enc.ciphertext.toString();
return encResult;
}
// 解密函數
export function decrypt(word) {
let key = cryptoJs.enc.Hex.parse(keywords);
let dec = cryptoJs.AES.decrypt(cryptoJs.format.Hex.parse(word), key, {
// vi: vi
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7
})
let decData = cryptoJs.enc.Utf8.stringify(dec);
return decData;
}
引入加密文件
import {encryption,decrypt} from '../../tools/crypto.js'
加密
const data = res.data.data;
const token = data.access_token;
localStorage.setItem("token", token);
localStorage.setItem("userInfo", JSON.stringify(data.userInfo));
//是否记住账号密码
if(this.rememberUserNamePassword){
//加密账号密码
let encryptionUserName = encryption(this.form.username);//加密账号
let encryptionPassword = encryption(this.form.password);//加密密码
localStorage.setItem("rememberLoginInfo", JSON.stringify({
username: encryptionUserName,
password: encryptionPassword
}));
}else{
localStorage.removeItem("rememberLoginInfo");
}
解密
created() {
//是否有记住密码
if(localStorage.rememberLoginInfo){
let rememberLoginInfo = JSON.parse(localStorage.rememberLoginInfo);
//解密
this.form.username = decrypt(rememberLoginInfo.username);
this.form.password = decrypt(rememberLoginInfo.password);
this.rememberUserNamePassword = true;
}
}