7

我尝试了不同类型的密码强度计或密码检查器,但是当我测试相同的密码时,它们都会给出不同的结果,因为每个都实现了自己的算法。

是否有一些官方标准或指南可以遵循我来构建我自己的密码强度计。

如果没有官方标准,好的密码强度计应该检查哪些功能?

4

6 回答 6

3

考虑以下:

  • 长度
  • 混合案例
  • 重复字符不多
  • 包括字母、数字和符号
  • 不包括用户名的一部分
  • 与以前的密码不同
  • 不散列到与弱密码相同的东西
  • 不是键盘行走
  • 与个人无关
  • 不以常见的后缀结尾
  • 不以通用前缀开头

请参阅 Bruce Schneier关于密码的帖子以及此帖子

于 2010-01-15T21:49:40.240 回答
1

据我所知,没有标准,因为有很多关于好的(即强)密码应该是什么的定义。

需要考虑的一些事项:

  • 长度——越长越好
  • 混合案例
  • 包括数字和字符
  • 包括非字母数字字符
  • 不是字典里的词吗
  • 是一个短语

等等

于 2010-01-15T21:37:35.693 回答
0

我还要补充一点:不包括用户名字符串,如果它很长,甚至不包括用户名的一部分。

于 2010-01-15T21:40:21.107 回答
0

我将在戒指中提出另一个标准:

  • 没有“键盘走动”

因为很多人希望用户记住难以记住的密码,所以他们求助于键盘模式来驯服这种疯狂。加入移位版本以获得良好的测量效果。

哦,Twitter 的禁止密码列表上也没有任何内容。

于 2010-01-15T21:42:23.707 回答
0

有许多指南(谷歌)提供了关于什么是强密码的指导,其中大部分是常识。归根结底,您可以将自己的政策(或公司政策,如果他们有政策)应用到什么是强项和什么不是强项,您的决定可能会受到您要保护的内容的影响。

正如@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://www.passwordmeter.com/

于 2010-01-15T21:44:03.293 回答
0

应根据几个参数检查密码的强度,例如是否存在特殊字符和数字、密码的长度等。

请检查此链接:

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+'%');

});

});

于 2014-06-05T20:22:30.320 回答