Browse Source

feat: 引入crypto-js组件

master
niushuai233 2 years ago
parent
commit
94b07cb929
  1. 1
      package.json
  2. 47
      src/utils/encryption/encrypt.js

1
package.json

@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
"clipboard": "^2.0.4",
"codemirror": "^5.46.0",
"cron-parser": "^2.10.0",
"crypto-js": "^4.1.1",
"dayjs": "^1.8.0",
"dom-align": "1.12.0",
"enquire.js": "^2.1.6",

47
src/utils/encryption/encrypt.js

@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
import CryptoJS from 'crypto-js'
import store from '@/store'
export default class EncryptUtil {
/**
* 加密
* @param {string} data
*/
static encrypt(data) {
let key = CryptoJS.enc.Utf8.parse(this.getKey())
let iv = CryptoJS.enc.Utf8.parse(this.getIv())
let source = CryptoJS.enc.Utf8.parse(data)
let encrypted = CryptoJS.AES.encrypt(source, key, {
iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
})
console.log('encrypt ==> key = ' + this.getKey() + ', iv = ' + this.getIv() + ', source = ' + data + ', result = ' + encrypted.toString())
return encrypted.toString()
}
/**
* 解密
* @param {string} data
*/
static decrype(data) {
let key = CryptoJS.enc.Utf8.parse(this.getKey())
let iv = CryptoJS.enc.Utf8.parse(this.getIv())
var decrypt = CryptoJS.AES.decrypt(data, key, {
iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
})
console.log('decrypt ==> key = ' + this.getKey() + ', iv = ' + this.getIv() + ', source = ' + data + ', result = ' + decrypt.toString(CryptoJS.enc.Utf8))
return decrypt.toString(CryptoJS.enc.Utf8)
}
static getKey() {
return store.getters.encryptKey
}
static getIv() {
return store.getters.encryptIv
}
}
Loading…
Cancel
Save