作者 RuoYi

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

@@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@
40 "url": "https://gitee.com/y_project/RuoYi-Vue.git" 40 "url": "https://gitee.com/y_project/RuoYi-Vue.git"
41 }, 41 },
42 "dependencies": { 42 "dependencies": {
43 - "@riophae/vue-treeselect": "0.1.0", 43 + "@riophae/vue-treeselect": "0.4.0",
44 "vue-quill-editor": "3.0.6", 44 "vue-quill-editor": "3.0.6",
45 "vue-cropper": "0.4.9", 45 "vue-cropper": "0.4.9",
46 "axios": "0.18.1", 46 "axios": "0.18.1",
@@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@
48 "element-ui": "2.11.1", 48 "element-ui": "2.11.1",
49 "fuse.js": "3.4.4", 49 "fuse.js": "3.4.4",
50 "js-cookie": "2.2.0", 50 "js-cookie": "2.2.0",
  51 + "jsencrypt": "3.0.0-rc.1",
51 "normalize.css": "7.0.0", 52 "normalize.css": "7.0.0",
52 "nprogress": "0.2.0", 53 "nprogress": "0.2.0",
53 "path-to-regexp": "2.4.0", 54 "path-to-regexp": "2.4.0",
  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 +
@@ -56,6 +56,7 @@ @@ -56,6 +56,7 @@
56 <script> 56 <script>
57 import { getCodeImg } from "@/api/login"; 57 import { getCodeImg } from "@/api/login";
58 import Cookies from "js-cookie"; 58 import Cookies from "js-cookie";
  59 +import { encrypt, decrypt } from '@/utils/jsencrypt'
59 60
60 export default { 61 export default {
61 name: "Login", 62 name: "Login",
@@ -108,7 +109,7 @@ export default { @@ -108,7 +109,7 @@ export default {
108 const rememberMe = Cookies.get('rememberMe') 109 const rememberMe = Cookies.get('rememberMe')
109 this.loginForm = { 110 this.loginForm = {
110 username: username === undefined ? this.loginForm.username : username, 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 rememberMe: rememberMe === undefined ? false : Boolean(rememberMe) 113 rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
113 }; 114 };
114 }, 115 },
@@ -118,7 +119,7 @@ export default { @@ -118,7 +119,7 @@ export default {
118 this.loading = true; 119 this.loading = true;
119 if (this.loginForm.rememberMe) { 120 if (this.loginForm.rememberMe) {
120 Cookies.set("username", this.loginForm.username, { expires: 30 }); 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 Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); 123 Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
123 } else { 124 } else {
124 Cookies.remove("username"); 125 Cookies.remove("username");