Commit 9f97fd0953484f061d0987816dee1bb614519697

Authored by RuoYi
1 parent 3af0158d

添加jsencrypt实现参数的前端加密

ruoyi-ui/package.json
... ... @@ -40,7 +40,7 @@
40 40 "url": "https://gitee.com/y_project/RuoYi-Vue.git"
41 41 },
42 42 "dependencies": {
43   - "@riophae/vue-treeselect": "0.1.0",
  43 + "@riophae/vue-treeselect": "0.4.0",
44 44 "vue-quill-editor": "3.0.6",
45 45 "vue-cropper": "0.4.9",
46 46 "axios": "0.18.1",
... ... @@ -48,6 +48,7 @@
48 48 "element-ui": "2.11.1",
49 49 "fuse.js": "3.4.4",
50 50 "js-cookie": "2.2.0",
  51 + "jsencrypt": "3.0.0-rc.1",
51 52 "normalize.css": "7.0.0",
52 53 "nprogress": "0.2.0",
53 54 "path-to-regexp": "2.4.0",
... ...
ruoyi-ui/src/utils/jsencrypt.js 0 → 100644
  1 +import JSEncrypt from 'jsencrypt/bin/jsencrypt'
  2 +
  3 +// 密钥对生成 http://web.chacuo.net/netrsakeypair
  4 +
  5 +const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +
  6 + '2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ=='
  7 +
  8 +const privateKey = 'MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8\n' +
  9 + 'mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9p\n' +
  10 + 'B6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue\n' +
  11 + '/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZ\n' +
  12 + 'UBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6\n' +
  13 + 'vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha\n' +
  14 + '4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3\n' +
  15 + 'tTbklZkD2A=='
  16 +
  17 +// 加密
  18 +export function encrypt(txt) {
  19 + const encryptor = new JSEncrypt()
  20 + encryptor.setPublicKey(publicKey) // 设置公钥
  21 + return encryptor.encrypt(txt) // 对需要加密的数据进行加密
  22 +}
  23 +
  24 +// 解密
  25 +export function decrypt(txt) {
  26 + const encryptor = new JSEncrypt()
  27 + encryptor.setPrivateKey(privateKey)
  28 + return encryptor.decrypt(txt)
  29 +}
  30 +
... ...
ruoyi-ui/src/views/login.vue
... ... @@ -56,6 +56,7 @@
56 56 <script>
57 57 import { getCodeImg } from "@/api/login";
58 58 import Cookies from "js-cookie";
  59 +import { encrypt, decrypt } from '@/utils/jsencrypt'
59 60  
60 61 export default {
61 62 name: "Login",
... ... @@ -108,7 +109,7 @@ export default {
108 109 const rememberMe = Cookies.get('rememberMe')
109 110 this.loginForm = {
110 111 username: username === undefined ? this.loginForm.username : username,
111   - password: password === undefined ? this.loginForm.password : password,
  112 + password: password === undefined ? this.loginForm.password : decrypt(password),
112 113 rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
113 114 };
114 115 },
... ... @@ -118,7 +119,7 @@ export default {
118 119 this.loading = true;
119 120 if (this.loginForm.rememberMe) {
120 121 Cookies.set("username", this.loginForm.username, { expires: 30 });
121   - Cookies.set("password", this.loginForm.password, { expires: 30 });
  122 + Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
122 123 Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
123 124 } else {
124 125 Cookies.remove("username");
... ...