Руководство по разработке измерителя надежности пароля (Password checker)

Я пробовал разные типы измерителей надежности пароля или проверки пароля, но все они дают разные результаты, когда я тестирую один и тот же пароль, потому что каждый реализует свой алгоритм.

Существуют ли какие-то официальные стандарты или рекомендации, которые могут последовать за мной при создании собственного измерителя надежности пароля.

Если не было официального стандарта, какие функции должен проверять хороший измеритель надежности пароля?

6 ответов

Решение

Учтите следующее:

  • длина
  • Смешанный случай
  • Не много повторяющихся персонажей
  • Включает буквы, цифры и символы
  • Не включает часть имени пользователя
  • Не похоже на предыдущие пароли
  • Не хэширует то же самое, что слабый пароль
  • Это не прогулка на клавиатуре
  • Не относится к личности
  • Не заканчивается общими суффиксами
  • Не начинается с общих префиксов

Посмотрите пост Брюса Шнайера о паролях, а также этот пост.

Насколько я знаю, стандарта нет, поскольку существует много определений того, каким должен быть хороший (то есть надежный) пароль.

Некоторые вещи для рассмотрения:

  • Длина - чем длиннее, тем лучше
  • Смешанный случай
  • Включает в себя цифры, а также символы
  • Включает не буквенно-цифровые символы
  • Не словарное слово
  • Это фраза

и так далее

Я бы также добавил: не включает строку имени пользователя или даже часть имени пользователя, если оно длинное.

Я добавлю еще один критерий в кольцо:

  • Никаких "прогулок на клавиатуре"

Поскольку многие ожидают, что пользователи запомнят пароли, которые трудно запомнить, они прибегают к клавиатурным схемам, чтобы укротить безумие. Киньте в сдвинутых версиях для хорошей меры.

О, и ничего в списке запрещенных паролей Twitter тоже.

Существует ряд рекомендаций (Google), в которых даются рекомендации по созданию надежного пароля, большинство из которых основано на здравом смысле. В конце дня вы можете применить свою собственную политику (или политику Компании, если таковая имеется) в отношении того, что является сильным, а что нет, и ваше решение, вероятно, будет зависеть от того, что вы пытаетесь защитить.

Как сказал @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

Мысль об этом сайте была особенно хороша, поскольку она дает представление о алгоритме, который они применяют, и о том, как они рассчитывают силу.

http://www.passwordmeter.com/

Надежность пароля следует проверять по нескольким параметрам, таким как наличие специальных символов и цифр, длина пароля и т. Д.

Пожалуйста, проверьте эту ссылку:

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

});

});

Другие вопросы по тегам