From 6b3886b0c39410d48a5ca6c578f9d664fa75c844 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 14 三月 2023 11:00:47 +0800
Subject: [PATCH] 增加密码复杂度验证

---
 src/main/webapp/views/password.html |   16 ++++++++++++++++
 src/main/webapp/views/index.html    |   24 +++++++++++++++++++++++-
 src/main/webapp/static/js/common.js |   16 ++++++++++++++++
 src/main/webapp/views/login.html    |    1 +
 4 files changed, 56 insertions(+), 1 deletions(-)

diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 88c58cc..8fe7450 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -5,6 +5,22 @@
 // 璇︽儏绐楀彛-瀹藉害
 var detailWidth = '90%';
 
+function checkPassword(password) {
+    //瀵嗙爜蹇呴』鍖呭惈瀛楃鍜屾暟瀛楅暱搴︿笉鑳藉皯浜�8浣�
+    let pattern = /(?=.*[0-9])(?=.*[a-zA-Z!@#$]).{8,}/
+    //涓嶈兘鍖呭惈杩炵画鏁板瓧
+    let pattern2 = /(0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\d/
+    //閲嶅鏁板瓧涓嶈兘瓒呰繃鍥涗綅
+    let pattern3 = /(\d)\1{3}/
+    if (pattern.test(password) && pattern2.test(password) === false && pattern3.test(password) === false) {
+        //鍖归厤鏀捐
+        return true
+    }
+
+    //涓嶅尮閰嶈姹備慨鏀瑰瘑鐮�
+    return false;
+}
+
 // 闈炵┖鍒ゆ柇
 function isEmpty(obj){
     return typeof obj == "undefined" || obj == null || obj === "";
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 0523023..20a7e84 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -52,7 +52,7 @@
           <cite id="username" style="margin-right: 5px">绠$悊鍛�</cite>
         </a>
         <dl class="layui-nav-child">
-          <dd lay-unselect><a ew-href="detail.html?resourceId=8">鍩烘湰璧勬枡</a></dd>
+          <dd lay-unselect><a id="personPage" ew-href="detail.html?resourceId=8">鍩烘湰璧勬枡</a></dd>
           <hr>
           <dd lay-unselect><a id="logout">閫�鍑�</a></dd>
         </dl>
@@ -160,6 +160,28 @@
     var url = logout.getAttribute('href');
     logout.setAttribute('href', baseUrl + "/login");
 
+    let username = localStorage.getItem('username')
+    let password = localStorage.getItem('password')
+    if (!(username === 'super' || password === 'root')) {
+      if(!checkPassword(password)){
+        //瑕佹眰淇敼瀵嗙爜
+        layer.msg('寮卞瘑鐮佽淇敼瀵嗙爜鍐嶇户缁�', {icon: 2});
+        layer.open({
+          type: 2,
+          title: '鍩烘湰璧勬枡',
+          maxmin: true,
+          shadeClose: false,
+          area: [top.detailWidth, top.detailHeight],
+          content: 'detail.html',
+          closeBtn: 0,
+          success: function(layero, index){
+            layero.find('.layui-layer-min').remove(); //鍘绘帀鏈�灏忓寲鎸夐挳
+            layero.find('.layui-layer-max').remove(); //鍘绘帀鏈�澶у寲鎸夐挳
+          }
+        })
+      }
+    }
+
   });
 </script>
 <script type="text/html" id="menuTpl">
diff --git a/src/main/webapp/views/login.html b/src/main/webapp/views/login.html
index 1c0772a..af1d465 100644
--- a/src/main/webapp/views/login.html
+++ b/src/main/webapp/views/login.html
@@ -133,6 +133,7 @@
             if (res.code === 200){
               localStorage.setItem("token", res.data.token);
               localStorage.setItem("username", res.data.username);
+              localStorage.setItem("password", password);
               window.location.href = "index.html";
             } else if (res.code === 10001) {
               layer.tips(res.msg, '#username', {tips: [4, '#ff0000']});
diff --git a/src/main/webapp/views/password.html b/src/main/webapp/views/password.html
index 70c14d5..623a5ab 100644
--- a/src/main/webapp/views/password.html
+++ b/src/main/webapp/views/password.html
@@ -91,11 +91,27 @@
                 if (parent.$('#password').val() === hex_md5(val)) {
                     return "涓庢棫瀵嗙爜涓嶈兘鐩稿悓";
                 }
+
+                let username = localStorage.getItem('username')
+                if (!(username === 'super' || password === 'root')){
+                    if(!checkPassword(val)){
+                        //瀵嗙爜蹇呴』鍖呭惈瀛楃鍜屾暟瀛�
+                        return "瀵嗙爜蹇呴』鍖呭惈瀛楃鍜屾暟瀛楅暱搴︿笉鑳藉皯浜�8浣嶏紝涓斾笉鑳藉寘鍚繛缁暟瀛楀拰鍥涗綅閲嶅鏁板瓧";
+                    }
+                }
             },
             rePwd: function (val) {
                 if ($('#password').val() !== val){
                     return "瀵嗙爜涓嶄竴鑷�";
                 }
+
+                let username = localStorage.getItem('username')
+                if (!(username === 'super' || password === 'root')){
+                    if(!checkPassword(val)){
+                        //瀵嗙爜蹇呴』鍖呭惈瀛楃鍜屾暟瀛�
+                        return "瀵嗙爜蹇呴』鍖呭惈瀛楃鍜屾暟瀛楅暱搴︿笉鑳藉皯浜�8浣嶏紝涓斾笉鑳藉寘鍚繛缁暟瀛楀拰鍥涗綅閲嶅鏁板瓧";
+                    }
+                }
             }
         });
 

--
Gitblit v1.9.1