系统管理员密码强度限制

This commit is contained in:
jiangzeyin 2019-04-08 13:01:21 +08:00
parent 8af50993f6
commit 58b489439a
4 changed files with 56 additions and 8 deletions

View File

@ -1,11 +1,6 @@
<script src="//cdn.staticfile.org/js-sha1/0.6.0/sha1.min.js"></script>
<script type="text/javascript">
/**
* 格式化密码加密
* @param data
* @param key
* @returns {*}
*/
## 格式化密码加密
function formatPwd(data, key) {
var pwd = data[key];
if (pwd && pwd != "") {
@ -25,4 +20,45 @@
}
return true;
}
function checkPasswordStrong(fieldValue) {
function checkStrong(sPW) {
var Modes = 0;
for (i = 0; i < sPW.length; i++) {
## 测试每一个字符的类别并统计一共有多少种模式.
Modes |= CharMode(sPW.charCodeAt(i));
}
return bitTotal(Modes);
}
## 判断字符类型
function CharMode(iN) {
if (iN >= 48 && iN <= 57) //数字
return 1;
if (iN >= 65 && iN <= 90) //大写字母
return 2;
if (iN >= 97 && iN <= 122) //小写
return 4;
else
return 8; //特殊字符
}
## 统计字符类型
function bitTotal(num) {
var modes = 0;
for (i = 0; i < 4; i++) {
if (num & 1) modes++;
num >>>= 1;
}
return modes;
}
## 密码强度等级说明,字符包括:小写字母、大写字母、数字、特殊字符
## 1---密码包含其中之一
## 2---密码包含其中之二
## 3---密码包含其中之三
## 4---密码包含其中之四
return checkStrong(fieldValue) >= 3;
}
</script>

View File

@ -300,6 +300,13 @@
if (!checkPwd(data.field.confirmPwd)) {
return;
}
## 密码强度
#if($user.isSystemUser())
if (!checkPasswordStrong(data.field.userPwd)) {
layer.msg("系统管理员密码强度太低");
return false;
}
#end
var sendData = formatPwd(data.field, "oldPwd");
sendData = formatPwd(data.field, "newPwd");
sendData = formatPwd(data.field, "confirmPwd")

View File

@ -67,7 +67,12 @@
//
form.on('submit(from_login)', function (data) {
if (!checkPwd(data.field.userPwd)) {
return;
return false;
}
// 密码强度
if (!checkPasswordStrong(data.field.userPwd)) {
layer.msg("系统管理员密码强度太低");
return false;
}
var sendData = formatPwd(data.field, "userPwd");
$.ajax({

View File

@ -51,7 +51,7 @@
width: 100%;
}
</style>
<script src="//echarts.baidu.com/dist/echarts.js"></script>
<script src="//echarts.baidu.com/dist/echarts.js?v=$staticCacheTime"></script>
</head>
<body>
<form action="" class="layui-form" id="form">