十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
密码强度指一个密码被非认证的用户或计算机破译的难度。 密码强度通常用“弱”或“强”来形 容。“弱”和“强”是相对的,不同的密码系统对于密码强度有不同的要求。密码的破译与系统允许客户尝试不同密码的次数、是否熟悉密码主人等因素相关。然而,即使再强的密码也有可能被偷取、破译或泄漏,在用户设置密码时,尽可能的将密码设置的越复杂、位数越长、经常更换此类型的密码,从而才能让密码强度尽可能达到最高。
创新互联是专业的安丘网站建设公司,安丘接单;提供成都网站制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行安丘网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
条件1: 密码只能是数字或大小写字母或下划线的组合
条件2: 如果密码包含数字和字母的组合即为强.
例如 : 123abc 为强密码
123abc_也是强密码
123456 为弱密码
123456_为弱密码
abcdef 为弱密码
abcdef_ 为弱密码
首先,画一个DFA:
其中,S是开始状态,A代表包含数字但不包含字母的状态,B代表包含字母但不包含数字的状态,C代表既包含字母又包含数字的状态,O代表包含非法字符的陷阱状态。如果状态机停在S、A、B状态,则为弱密码。如果状态机停在C状态,则为强密码。如果状态机停在O状态,则为非法密码。然后,把它转化成正则就可以啦。
下面这个正则要求密码长度最少12位,包含至少1个特殊字符,2个数字,2个大写字母和一些小写字母。
(?=^.{12,25}$)(?=(?:.*?\d){2})(?=.*[a-z])(?=(?:.*?[A-Z]){2})(?=(?:.*?[!@#$%*()_+^}{:;?.]){1})(?!.*\s)[0-9a-zA-Z!@#$%*()_+^]*$
分解:
span style="font-size: 16px;"(?=^.{12,25}$) -- 密码长度12-25,自己改变数字可以调节
(?=(?:.*?[!@#$%*()_+^}{:;?.]){1}) -- 至少一个特殊字母,FYI/span
(?=(?:.*?\d){2}) -- 至少2个数字,FYI
(?=.*[a-z]) -- a-z的小写字母
(?=(?:.*?[A-Z]){2}) -- 至少2个大写字母,FYI
在表单form的属性中添加onsubmit="return false",然后在表单提交的时候调用js,在js中做判断,如果不满足要求就return false,表单将不会提交。。。。
具体代码如下:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
titlejQuery密码强度插件passwordStrength实例演示/title
script type="text/javascript" src="jquery1.3.2.js"/script
script src="jquery.passwordStrength.js" type="text/javascript"/script
script type="text/javascript"
$(document).ready(function(){
var $pwd = $('input[name="password"]');
$pwd.passwordStrength();
$(".Generate_password").click(function(){
//产生随机八位密码
var pwd = $.passwordStrength.getRandomPassword(8);
//将随机密码写入密码框,并触发验证
$pwd.val(pwd).trigger("keyup");
return false;
})
});
/script
style type="text/css"
body{font-size:12px;}
.clearfix:after{
content:"."; display:block; height:0; clear:both;
visibility:hidden;
}
*html .clearfix{
height:1%;
}
*+html .clearfix{
height:1%;
}
.l{float:left;}
.form_item{margin-bottom:6px;}
.form_item label{width:100px;text-align:right;margin-right:4px;display:block;float:left;padding-top:2px;}
.form_item .text{height:14px;padding:2px;width:132px;border:1px solid #999;}
.form_item div a{margin-left:6px;}
#passwordStrengthDiv{margin-top:6px;}
.is0{background:url(images/progressImg1.png) no-repeat 0 0;width:138px;height:7px;}
.is10{background-position:0 -7px;}
.is20{background-position:0 -14px;}
.is30{background-position:0 -21px;}
.is40{background-position:0 -28px;}
.is50{background-position:0 -35px;}
.is60{background-position:0 -42px;}
.is70{background-position:0 -49px;}
.is80{background-position:0 -56px;}
.is90{background-position:0 -63px;}
.is100{background-position:0 -70px;}
/style
/head
body
script type="text/javascript"
if(document.getElementById('GoogleAD')!=null){
document.getElementById('GoogleAD').innerHTML = 'div class="SearchEngine_AD1"' + document.getElementById('GoogleADCode').innerHTML + '/div';
}
/script
div class="form_item clearfix"
label密 码:/label
div class="l"
divinput name="password" type="text" class="text" maxlength="16"/a href="" class="Generate_password"产生随机密码/a/div
div id="passwordStrengthDiv" class="is0"/div
/div
/div
/body
/html
在线演示地址如下:
密码字符串的组成形式。
比如,纯数字的强度就小于纯字母的强度,纯字母的就小于数字与字母组合的强度(这种是自己通过写简单的代码来判断,当然,也可以下载相应的插件,百度搜一下应该有很多的)。
这个可以在页面上用jquery的插件来实现,如果密码有你自己的必要规则,那么写成正则在页面或者后台进行校验都是可以的
查看示例:DEMO
打包下载
使用很简单。
复制代码
代码如下:
$('#pass').passwordStrength();
XHTML
复制代码
代码如下:
plabel请输入密码:/label
input
type="password"
id="pass"
class="input"
//p
div
id="passwordStrengthDiv"
class="is0"/div
plabel确认密码:/label
input
type="password"
id="repass"
class="input"
//p
注意:id#passwordStrengthDiv的DIV是用来加载强度图片的,你也可以自定义ID,但调用时就要给参数赋值:
复制代码
代码如下:
targetDiv
:
'#ID'
//自定义加载图片的ID
载入JS和CSS:
复制代码
代码如下:
link
rel="stylesheet"
type="text/css"
href="style/main.css"
/
script
type="text/javascript"
src="jquery.js"/script
script
type="text/javascript"
src="jquery.passwordStrength.js"/script
script
type="text/javascript"
$(function(){
$('#pass').passwordStrength();
});
/script
上面的代码已经可以了,放在head之间
url: "some.php"
这里已经指明处理文件some.php,那你就做一个这样的文件就行,将允许结果进行直接输出即可:echo '这里是结果';
这个页面输出的任何东西,都会被ajax获取,也就是success: function(msg){括号中的msg就是获取后的处理页面的任何输出