diff --git a/package.json b/package.json index 1622e37..8fb6dbf 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/utils/encryption/encrypt.js b/src/utils/encryption/encrypt.js new file mode 100644 index 0000000..dd49a27 --- /dev/null +++ b/src/utils/encryption/encrypt.js @@ -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 + } +}