From 9f97fd0953484f061d0987816dee1bb614519697 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期三, 20 十一月 2019 11:53:04 +0800
Subject: [PATCH] 添加jsencrypt实现参数的前端加密
---
ruoyi-ui/package.json | 3 ++-
ruoyi-ui/src/utils/jsencrypt.js | 30 ++++++++++++++++++++++++++++++
ruoyi-ui/src/views/login.vue | 5 +++--
3 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
index ae3a5c3..d6f08df 100644
--- a/ruoyi-ui/package.json
+++ b/ruoyi-ui/package.json
@@ -40,7 +40,7 @@
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
},
"dependencies": {
- "@riophae/vue-treeselect": "0.1.0",
+ "@riophae/vue-treeselect": "0.4.0",
"vue-quill-editor": "3.0.6",
"vue-cropper": "0.4.9",
"axios": "0.18.1",
@@ -48,6 +48,7 @@
"element-ui": "2.11.1",
"fuse.js": "3.4.4",
"js-cookie": "2.2.0",
+ "jsencrypt": "3.0.0-rc.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
diff --git a/ruoyi-ui/src/utils/jsencrypt.js b/ruoyi-ui/src/utils/jsencrypt.js
new file mode 100644
index 0000000..83db480
--- /dev/null
+++ b/ruoyi-ui/src/utils/jsencrypt.js
@@ -0,0 +1,30 @@
+import JSEncrypt from 'jsencrypt/bin/jsencrypt'
+
+// 瀵嗛挜瀵圭敓鎴� http://web.chacuo.net/netrsakeypair
+
+const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +
+ '2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ=='
+
+const privateKey = 'MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8\n' +
+ 'mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9p\n' +
+ 'B6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue\n' +
+ '/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZ\n' +
+ 'UBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6\n' +
+ 'vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha\n' +
+ '4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3\n' +
+ 'tTbklZkD2A=='
+
+// 鍔犲瘑
+export function encrypt(txt) {
+ const encryptor = new JSEncrypt()
+ encryptor.setPublicKey(publicKey) // 璁剧疆鍏挜
+ return encryptor.encrypt(txt) // 瀵归渶瑕佸姞瀵嗙殑鏁版嵁杩涜鍔犲瘑
+}
+
+// 瑙e瘑
+export function decrypt(txt) {
+ const encryptor = new JSEncrypt()
+ encryptor.setPrivateKey(privateKey)
+ return encryptor.decrypt(txt)
+}
+
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
index 880af8d..8679687 100644
--- a/ruoyi-ui/src/views/login.vue
+++ b/ruoyi-ui/src/views/login.vue
@@ -56,6 +56,7 @@
<script>
import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie";
+import { encrypt, decrypt } from '@/utils/jsencrypt'
export default {
name: "Login",
@@ -108,7 +109,7 @@
const rememberMe = Cookies.get('rememberMe')
this.loginForm = {
username: username === undefined ? this.loginForm.username : username,
- password: password === undefined ? this.loginForm.password : password,
+ password: password === undefined ? this.loginForm.password : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
};
},
@@ -118,7 +119,7 @@
this.loading = true;
if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 });
- Cookies.set("password", this.loginForm.password, { expires: 30 });
+ Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
} else {
Cookies.remove("username");
--
Gitblit v1.9.3