zhangjie пре 6 месеци
родитељ
комит
f3543e3726
5 измењених фајлова са 27 додато и 8 уклоњено
  1. 2 1
      package.json
  2. 5 4
      src/modules/base/components/ResetPwd.vue
  3. 4 3
      src/modules/login/views/Login.vue
  4. 11 0
      src/plugins/rsa.js
  5. 5 0
      yarn.lock

+ 2 - 1
package.json

@@ -18,6 +18,7 @@
     "element-ui": "^2.14.1",
     "js-md5": "^0.7.3",
     "jsbarcode": "^3.11.3",
+    "jsencrypt": "^3.3.2",
     "json5": "^2.2.3",
     "lodash": "^4.17.21",
     "qs": "^6.11.0",
@@ -54,4 +55,4 @@
       "git add"
     ]
   }
-}
+}

+ 5 - 4
src/modules/base/components/ResetPwd.vue

@@ -82,7 +82,8 @@
 import { updatePwd } from "../api";
 import { getSmsCodeForBind } from "@/modules/login/api";
 import { strictPassword, phone, smscode } from "@/plugins/formRules";
-import { AES } from "@/plugins/crypto";
+// import { AES } from "@/plugins/crypto";
+import { encrypt } from "@/plugins/rsa";
 import fetchSmsMixins from "@/modules/login/fetchSmsMixins";
 
 const initModalForm = {
@@ -207,7 +208,7 @@ export default {
       const data = await getSmsCodeForBind({
         loginName: this.userInfo.loginName,
         schoolCode: this.userInfo.schoolCode,
-        password: AES(this.modalForm.oldPassword),
+        password: encrypt(this.modalForm.oldPassword),
         mobileNumber: this.modalForm.mobileNumber,
       }).catch(() => {
         this.isFetchingCode = false;
@@ -233,7 +234,7 @@ export default {
       if (this.needBindMobile) {
         datas = {
           ...datas,
-          oldPassword: AES(this.modalForm.oldPassword),
+          oldPassword: encrypt(this.modalForm.oldPassword),
           mobileNumber: this.modalForm.mobileNumber,
           verifyCode: this.modalForm.code,
         };
@@ -241,7 +242,7 @@ export default {
       if (this.needResetPwd) {
         datas = {
           ...datas,
-          password: AES(this.modalForm.password),
+          password: encrypt(this.modalForm.password),
         };
       }
       const data = await updatePwd(datas).catch(() => {

+ 4 - 3
src/modules/login/views/Login.vue

@@ -127,7 +127,8 @@
 <script>
 import { phone, smscode } from "@/plugins/formRules";
 import { login, getSmsCode, getSchoolInfo, getAccountSmsCode } from "../api";
-import { AES } from "@/plugins/crypto";
+// import { AES } from "@/plugins/crypto";
+import { encrypt } from "@/plugins/rsa";
 import { MD5 } from "@/plugins/md5";
 import ResetPwd from "@/modules/base/components/ResetPwd.vue";
 import { getOrgCode } from "@/constants/app";
@@ -234,7 +235,7 @@ export default {
         datas = {
           ...datas,
           loginName: this.loginModel.loginName,
-          password: AES(this.loginModel.password),
+          password: encrypt(this.loginModel.password),
         };
         if (this.schoolInfo.accountSmsVerify) datas.code = this.loginModel.code;
       } else {
@@ -394,7 +395,7 @@ export default {
       const data = await getAccountSmsCode({
         schoolCode: this.loginModel.schoolCode,
         loginName: this.loginModel.loginName,
-        password: AES(this.loginModel.password),
+        password: encrypt(this.loginModel.password),
       }).catch(() => {
         this.isFetchingCode = false;
       });

+ 11 - 0
src/plugins/rsa.js

@@ -0,0 +1,11 @@
+import JSEncrypt from "jsencrypt";
+
+const PUBLIC_KEY = `MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXl2bQu5E9JYpMaeWHCbGq3efy6S5y1PMwZp6iatu5KYhFJbZ+1oSPVCbz6ETNFx3sayk4m1lnoKmADaOr6Dyo8rWVlmw+yqjB5fzV7sJrla385OpsCDdznHBEK4v2ubQRSq86N2PFGXxSPekQNlmlwfae8ZLi6NGbrbnMRf8beQIDAQAB`;
+
+export function encrypt(content) {
+  const encrypt = new JSEncrypt();
+  encrypt.setPublicKey(PUBLIC_KEY);
+
+  const encrypted = encrypt.encrypt(content);
+  return encrypted;
+}

+ 5 - 0
yarn.lock

@@ -3900,6 +3900,11 @@ jsbarcode@^3.11.3:
   resolved "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.5.tgz#390b3efd0271f35b9d68c7b8af6e972445969014"
   integrity sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA==
 
+jsencrypt@^3.3.2:
+  version "3.3.2"
+  resolved "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.3.2.tgz#b0f1a2278810c7ba1cb8957af11195354622df7c"
+  integrity sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==
+
 jsesc@^2.5.1:
   version "2.5.2"
   resolved "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"