1、安装
npm install crypto-js --save-dev
也可以指定版本
npm install crypto-js@3.3.0 --save-dev
2、写js方法文件des.js
提供两种方式(加密结果有所不同)
方式一:
import cryptoJs from 'crypto-js'
export const encryptDes = (message, key) => {
let keyHex = cryptoJs.enc.Utf8.parse(key)
let option = { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }
let encrypted = cryptoJs.DES.encrypt(message, keyHex, option)
return encrypted.ciphertext.toString()
}
export const decryptDes = (message, key) => {
let keyHex = cryptoJs.enc.Utf8.parse(key);
let decrypted = cryptoJs.DES.decrypt(
{
ciphertext: cryptoJs.enc.Hex.parse(message)
},
keyHex,
{
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7
}
)
return decrypted.toString(cryptoJs.enc.Utf8)
}
方式二:
import cryptoJs from 'crypto-js'
export const encryptDes = (message, key) => {
let keyHex = cryptoJs.enc.Utf8.parse(key);
let encrypted = cryptoJs.DES.encrypt(message, keyHex, {
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7,
});
return encrypted.toString();
}
export const decryptDes = (message, key) => {
let keyHex = cryptoJs.enc.Utf8.parse(key);
let decrypted = cryptoJs.DES.decrypt(
{
ciphertext: cryptoJs.enc.Base64.parse(message),
},
keyHex,
{
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7,
}
);
return decrypted.toString(cryptoJs.enc.Utf8);
}
3、引入。
在main.js中引入
import { encryptDes, decryptDes } from './utils/des'
Vue.prototype.encryptDes = encryptDes;
Vue.prototype.decryptDes = decryptDes;
4、使用
示例:
let obk = {
ceshi:'ceshi1',
a:'aa',
b:'bb'
}
let key = 'ceshiKEY';
方式一使用结果:
//加密
let jiam = this.encryptDes(JSON.stringify(obk),key)
console.log(jiam)
//结果是:bb8d7d51ab6a47e0bff4a057181fb571472a8621281dd6c19673742c79d4e5a3f0aaabe9f77124e8
//解密
let jmJson= this.decryptDes(jiam,key);
console.log(jmJson)
//结果是(字符串):{"ceshi":"ceshi1","a":"aa","b":"bb"}
方式二结果:
//加密
let jiam = this.encryptDes(JSON.stringify(obk),key)
console.log(jiam)
//结果是:u419UatqR+C/9KBXGB+1cUcqhiEoHdbBlnN0LHnU5aPwqqvp93Ek6A==
//解密
let jmJson= this.decryptDes(jiam,key);
console.log(jmJson)
//结果是(字符串):{"ceshi":"ceshi1","a":"aa","b":"bb"}
注:
- 给对象等加密要先转成字符串;
- 方式一和方式二的加解密不能混用;