From fdc447b1f73d62735c55880f718792d839a7e7ab Mon Sep 17 00:00:00 2001 From: TiaStars Date: Sat, 12 Oct 2024 09:16:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=84=B1=E6=95=8F=E5=8A=A0=E5=AF=86=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- package.json | 7 ++++--- src/views/login_v1.vue | 26 ++++++++++++++++++++++++-- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/.env.development b/.env.development index be791d5..788e928 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VUE_APP_TITLE = 金鸡湖现代服务业品牌管理系统 ENV = 'development' # 金鸡湖现代服务业品牌管理系统/开发环境 -VUE_APP_BASE_API = 'http://192.168.0.107:9031' +VUE_APP_BASE_API = 'http://192.168.0.108:9031' # 测试环境数据库 # VUE_APP_BASE_API = 'http://39.101.188.84:9040' # 脱敏三方测试用数据库 diff --git a/package.json b/package.json index 5e7a11d..224e9b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ruoyi", - "version": "1.0.202409271052", + "version": "1.0.202410120906", "description": "金鸡湖现代服务业品牌管理系统", "author": "若依", "license": "MIT", @@ -41,6 +41,7 @@ "@wangeditor/editor-for-vue": "^1.0.2", "autofit.js": "^3.1.0", "axios": "0.24.0", + "bpmn-js-token-simulation": "0.10.0", "clipboard": "2.0.8", "core-js": "3.25.3", "echarts": "5.4.0", @@ -54,6 +55,7 @@ "jsencrypt": "3.0.0-rc.1", "jspdf": "^2.5.1", "lodash": "^4.17.21", + "node-forge": "^1.3.1", "nprogress": "0.2.0", "quill": "1.3.7", "screenfull": "5.0.2", @@ -66,8 +68,7 @@ "vuedraggable": "2.24.3", "vuex": "3.6.0", "xlsx": "^0.18.5", - "xml-js": "1.6.11", - "bpmn-js-token-simulation": "0.10.0" + "xml-js": "1.6.11" }, "devDependencies": { "@vue/cli-plugin-babel": "4.4.6", diff --git a/src/views/login_v1.vue b/src/views/login_v1.vue index e517d8f..ac879b1 100644 --- a/src/views/login_v1.vue +++ b/src/views/login_v1.vue @@ -104,7 +104,7 @@ import { getCodeImg } from "@/api/login"; import Cookies from "js-cookie"; import { encrypt, decrypt } from "@/utils/jsencrypt"; -import {KEYUTIL, KJUR} from "jsrsasign" +import forge from 'node-forge' export default { name: "Login", @@ -134,6 +134,7 @@ export default { register: false, redirect: undefined, userType:"01", + publicKey:`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8bS1kYTiMhIS5MZU253bc0ukaxrA1lfCziABFxQrC2c09tMrQGjuH6V1x2ofNBMGhOD9uWN/qkAQy/HwOe/NKUqCw6N0ov6guSrqMDW/BdZ3Bl0rmM1/95jTC1xffFFvej7xWNffIbaPI+bJ4WLX9NViNi9HmT0BRNzJ4d2R86LPPCa+bxLaPjsh2R2tBkbLkUot9769aJaPPiwPCZHMkuQenjHSmpWL0okleqMH8EGX7j6A5A/4IUXPMNKMMzkiSRpsIJ65GJmDAbnR3ZXRfC8MzVBBJB6zr5N0F4N9xZfF+JS/Yx726tCu+rA6GDCyTxtQ/wnKpPdwFP5nUWCWQIDAQAB` }; }, watch: { @@ -192,8 +193,29 @@ export default { Cookies.remove("mima"); Cookies.remove("rememberMe"); } + // 生成一个 2048 位的 RSA 密钥对 + const lines = []; + lines.push('-----BEGIN PUBLIC KEY-----'); + for (let i = 0; i < this.publicKey.length; i += 64) { + lines.push(this.publicKey.slice(i, i + 64)); + } + lines.push('-----END PUBLIC KEY-----'); + lines.join('\n') + const publicKey = forge.pki.publicKeyFromPem(lines.join('\n')); + // 将待加密的字符串转换为字节数组 + var dataBytes = forge.util.encodeUtf8(this.loginForm.mima); + // 加密数据 + var encryptedBytes = publicKey.encrypt(dataBytes, 'RSA-OAEP', { + md: forge.md.sha256.create(), + mgf1: { + md: forge.md.sha1.create() + } + }); + // 将加密后的字节数组转换为 Base64 编码的字符串 + var encryptedBase64 = forge.util.encode64(encryptedBytes); + // console.log("加密后数据", encryptedBase64); this.$store - .dispatch("Login", {...this.loginForm,userType:this.userType, password: encrypt(this.loginForm.mima)}) + .dispatch("Login", {...this.loginForm,userType:this.userType, password: encryptedBase64}) .then(() => { Cookies.set("newSysLogininfor", 1); this.$router.push({ path: this.redirect || "/" }).catch(() => {});