Руководство по разработке измерителя надежности пароля (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://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+'%');
});
});