Cześć. Pisząc kolejny projekt, chcę stworzyć często już spotykaną cieszynkę jaką jest siła hasła. Ze stworzeniem skryptu nie miałem problemu, zaraz go tutaj udostępnie. Chodzi mi bardziej o to jak premiować złożoność hasła, czy jest jakiś ogólny schemat i z czym to się w ogóle je. Może najpierw kod.
function usersPasswordStreinght(password){
var table = password.split("");
var numeric = 0;
var bigString = 0;
var smallString = 0;
var symbols = -1;
var passwordSafetyLevel = 0;
var passwordSafetyLevelLength = 0;
var passwordSafetyLevelNumeric = 0;
var passwordSafetyLevelSmallString = 0;
var passwordSafetyLevelBigString = 0;
var passwordSafetyLevelSymbols = 0;
for(i=0;i<=table.length;i++){
if(table[i] >= 0 && table[i] <= 9){
numeric++;
}else if(table[i] >= 'a' && table[i] <= 'z'){
smallString++;
}else if(table[i] >= 'A' && table[i] <= 'Z'){
bigString++;
}else{
symbols++;
}
if(table.length>3){
passwordSafetyLevelLength = 4;
}
if(table.length>6){
passwordSafetyLevelLength = 10;
}
if(numeric>1){
passwordSafetyLevelNumeric = 19;
}
if(numeric>2){
passwordSafetyLevelNumeric = 24;
}
if(smallString>2){
passwordSafetyLevelSmallString = 11;
}
if(smallString>4){
passwordSafetyLevelSmallString = 17;
}
if(bigString>0){
passwordSafetyLevelBigString = 17;
}
if(bigString>2){
passwordSafetyLevelBigString = 23;
}
if(symbols>0){
passwordSafetyLevelSymbols = 21;
}
if(symbols>1){
passwordSafetyLevelSymbols = 26;
}
passwordSafetyLevel = passwordSafetyLevelLength+passwordSafetyLevelNumeric+passwordSafetyLevelSmallStr
ing+passwordSafetyLevelBigString+passwordSafetyLevelSymbols;
document.getElementById("id").innerHTML=passwordSafetyLevel+ "%";
}
}
<input type="password" value="" onKeyUp="usersPasswordStreinght(this.value)" />
Może mój system niejest wyważony, ale działa sprawnie i szybko. Proszę o opinie i podpowiedzi jak zrobić by działało to tak jak należy.