From 94b07cb92929d983e03f1326ccf3fc5a5805dca6 Mon Sep 17 00:00:00 2001 From: niushuai233 Date: Wed, 4 Jan 2023 16:13:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=95=E5=85=A5crypto-js=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/utils/encryption/encrypt.js | 47 +++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/utils/encryption/encrypt.js 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 + } +}