我尝试了不同类型的密码强度计或密码检查器,但是当我测试相同的密码时,它们都会给出不同的结果,因为每个都实现了自己的算法。
是否有一些官方标准或指南可以遵循我来构建我自己的密码强度计。
如果没有官方标准,好的密码强度计应该检查哪些功能?
我尝试了不同类型的密码强度计或密码检查器,但是当我测试相同的密码时,它们都会给出不同的结果,因为每个都实现了自己的算法。
是否有一些官方标准或指南可以遵循我来构建我自己的密码强度计。
如果没有官方标准,好的密码强度计应该检查哪些功能?
据我所知,没有标准,因为有很多关于好的(即强)密码应该是什么的定义。
需要考虑的一些事项:
等等
我还要补充一点:不包括用户名字符串,如果它很长,甚至不包括用户名的一部分。
我将在戒指中提出另一个标准:
因为很多人希望用户记住难以记住的密码,所以他们求助于键盘模式来驯服这种疯狂。加入移位版本以获得良好的测量效果。
哦,Twitter 的禁止密码列表上也没有任何内容。
有许多指南(谷歌)提供了关于什么是强密码的指导,其中大部分是常识。归根结底,您可以将自己的政策(或公司政策,如果他们有政策)应用到什么是强项和什么不是强项,您的决定可能会受到您要保护的内容的影响。
正如@jay 所说,我认为标准化这样的事情不是明智的做法!
http://net.tutsplus.com/tutorials/javascript-ajax/build-a-simple-password-strength-checker/
http://www.ibm.com/developerworks/lotus/library/ls-password_quality/index.html#N100F5
认为这个网站特别好,因为它提供了他们正在应用的算法以及他们如何计算强度的想法。
应根据几个参数检查密码的强度,例如是否存在特殊字符和数字、密码的长度等。
请检查此链接:
http://tinytute.com/2014/06/03/animated-password-strength-checker-quick-easy/
jQuery 代码块:
$(文档).ready(函数(){
$("#textBox").keyup(function(){
var passWord = $("#textBox").val();
var passLength = passWord.length;
var specialFlag = 0;
var numberFlag = 0;
var numberGenerator = 0;
var total = 0;
if(/^[a-zA-Z0-9- ]*$/.test(passWord) == false) {
specialFlag =20;
}
if(passWord.match(/[0-9]/)) {
numberFlag = 25;
}
if(passLength>4&&passLength<=6){
numberGenerator =25;
}else if(passLength>=7&&passLength<=9){
numberGenerator =35;
}else if(passLength>9){
numberGenerator =55;
}else if(passLength>0&&passLength<=4){
numberGenerator =15;
}else{
numberGenerator =0;
}
total = numberGenerator + specialFlag + numberFlag;
if(total<30){
$('#progressBar').css('background-color','#CCC');
}else if(total<60&&total>=30){
$('#progressBar').css('background-color','#FF6600');
}else if(total>=60&&total<90){
$('#progressBar').css('background-color','#FFCC00');
}else if(total>=90){
$('#progressBar').css('background-color','#0f0');
}
$('#progressBar').css('width',total+'%');
});
});