From 9c21ef74b53777f240bcefa788f517a9453d4512 Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Tue, 9 Dec 2025 10:33:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=82=E6=95=B0=E8=A7=A3?= =?UTF-8?q?=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + utils/aes_secret.js | 39 +++++++++++++++++++++++++++++++++++++++ utils/request.js | 4 ++++ 3 files changed, 44 insertions(+) create mode 100644 utils/aes_secret.js diff --git a/package.json b/package.json index 79817bc..f76ba6d 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "

\"logo\"

uView

多平台快速开发的UI框架

", "main": "main.js", "dependencies": { + "crypto-js": "^4.2.0", "uview-ui": "^2.0.36", "vue": "^2.7.14", "vuex-persistedstate": "^3.2.1" diff --git a/utils/aes_secret.js b/utils/aes_secret.js new file mode 100644 index 0000000..6448b99 --- /dev/null +++ b/utils/aes_secret.js @@ -0,0 +1,39 @@ +import CryptoJS from "crypto-js"; + +const key = CryptoJS.enc.Utf8.parse("daac3ae52eff4cec"); // 16位 + +const encrypt = (word) => { + let encrypted = ""; + if (typeof word === "string") { + const src = CryptoJS.enc.Utf8.parse(word); + encrypted = CryptoJS.AES.encrypt(src, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, + }); + } else if (typeof word === "object") { + // 对象格式的转成json字符串 + const data = JSON.stringify(word); + const src = CryptoJS.enc.Utf8.parse(data); + encrypted = CryptoJS.AES.encrypt(src, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, + }); + } + return encrypted.ciphertext.toString(CryptoJS.enc.Base64); +}; +function decryptAes(params) { + try { + const key = CryptoJS.enc.Utf8.parse("fa4e0fae59534676"); // 16 bytes key for AES + + const bytes = CryptoJS.AES.decrypt(params.info, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, + }); + const decryptedText = bytes.toString(CryptoJS.enc.Utf8); + return JSON.parse(decryptedText); + } catch (e) { + console.info(e); + } +} + +export { encrypt, decryptAes }; diff --git a/utils/request.js b/utils/request.js index 2b950e5..f5a4485 100644 --- a/utils/request.js +++ b/utils/request.js @@ -6,6 +6,7 @@ let requestPath = 'http://127.0.0.1:8059/xgf_gwj_2.0/'; // 后台请求地址 // let requestPath = 'https://qgxgf.qhdsafety.com/qa-prevention-xgf/'; // 外网地址 import store from '../store/index' import {setRefreshToken} from "../api/api"; +import {decryptAes} from "@/utils/aes_secret"; function post(url, data) { return new Promise((resolve, reject) => { @@ -27,6 +28,7 @@ function post(url, data) { 'token': store.state.userInfo.token || '' }, success: (res) => { + res.data = decryptAes(res.data); if (res.statusCode != 200){ uni.showToast({ title: '网络错误请重试', @@ -80,6 +82,7 @@ function upload(url, data) { 'token': store.state.userInfo.token || '' }, success: (res) => { + res.data = decryptAes(res.data); uni.hideLoading(); if (JSON.parse(res.data).result === 'success') { resolve(JSON.parse(res.data)) @@ -120,6 +123,7 @@ function uploads(url, data) { 'token': store.state.userInfo.token || '' }, success: (res) => { + res.data = decryptAes(res.data); uni.hideLoading(); if (JSON.parse(res.data).result === 'success') { resolve(JSON.parse(res.data))