2010-01-15 8 views
7

Ich habe verschiedene Arten von Password Strength Meters oder Password Checkers ausprobiert, aber alle geben mir unterschiedliche Ergebnisse, wenn ich das gleiche Passwort teste, da jedes seinen eigenen Algorithmus implementiert.Richtlinien für ein Passwort Strength Meter (Passwort Checker) Design

Gibt es einen offiziellen Standard oder eine Richtlinie, die mir folgen können, um meinen eigenen Password Strength Meter zu erstellen?

Wenn es keinen offiziellen Standard gäbe, welche Funktionen sollte ein gutes Passwortstärkemessgerät prüfen?

+2

Ich denke, dass die Standardisierung des Algorithmus seine Stärke untergraben würde, da Übeltäter ein gut und eng definiertes Regelwerk hätten, das sie nutzen könnten, wenn sie versuchen, Passwörter zu knacken. Es wäre viel einfacher, Ihr Passwort zu hacken, wenn ich wüsste, dass es 2-3 Zahlen, 5-6 Buchstaben und 1 Satz Satzzeichen hat, als wenn ich über Ihre speziellen Kriterien im Unklaren wäre. Keine Antwort, ich weiß. – Jay

Antwort

3

Beachten Sie Folgendes:

  • Länge
  • Mixed Fall
  • Nicht viele wiederholte Zeichen
  • Buchstaben, Zahlen enthält und Symbole
  • Darin nicht enthalten sind Teil der Benutzername
  • nicht ähnlich wie vor Passwörter
  • Nicht
  • Ist das nicht eine Tastatur zu Fuß
  • ist nicht auf die einzelnen
  • bezogen auf das gleiche wie ein schwaches Passwort-Hash nicht mit dem gemeinsamen Suffixe enden
  • nicht mit den gemeinsamen Präfixe

Siehe Bruce Schneier post on passwords sowie this post starten.

+0

großer Schneier Artikel. ist sehr nützlich. Vielen Dank. – RRUZ

1

Soweit ich weiß, gibt es keinen Standard, da es viele Definitionen gibt, was ein gutes (d. H. Starkes) Passwort sein sollte.

einige Dinge zu beachten:

  • Länge - je länger desto besser
  • Mixed Fall
  • Zahlen sowie Zeichen enthält
  • nicht alphanumerische Zeichen
  • Ist kein Enthält Wörterbuch Wort
  • ist ein Ausdruck

und so weiter

+0

"Enthält keine alphanumerischen Zeichen"? Sie haben gerade in der Zeile vor "Zahlen und Zeichen einschließen" gesagt, die alphanumerisch ist? –

+0

Das war ein Tippfehler. Jetzt behoben. – ChrisF

0

Ich würde auch hinzufügen: Enthält den Benutzernamen Zeichenfolge nicht enthalten, oder sogar einen Teil des Benutzernamens, wenn es lang ist.

0

ich ein anderes Kriterium im Ring werfen werden:

  • Nein „Tastatur geht“

Weil so viele Menschen Benutzer erwarten Passwörter zu merken, die schwer zu merken sind, greifen sie auf Tastatur Muster, um den Wahnsinn zu zähmen. Werfen Sie verschobene Versionen für gutes Maß ein.

Oh, und nichts auf Twitter's forbidden password list, entweder.

0

Es gibt eine Reihe von Richtlinien (google), die eine Anleitung geben, was ein starkes Passwort ausmacht, von denen die meisten gesunder Menschenverstand sind. Am Ende des Tages können Sie Ihre eigenen Richtlinien (oder Unternehmensrichtlinien, wenn sie eine haben) auf das anwenden, was stark ist und was nicht, und Ihre Entscheidung würde wahrscheinlich von dem beeinflusst werden, was Sie zu schützen versuchen.

Wie @jay sagte, ich glaube nicht, dass das standardisieren so eine weise Übung wäre!

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

Gedanke war dieser Standort besonders gut, da es eine Idee des Algorithmus gibt sie anwenden und wie sie Kraft berechnen.

http://www.passwordmeter.com/

0

Stärke eines Passworts sollte im Namen mehrerer Parameter wie das Vorhandensein von Sonderzeichen und Zahlen geprüft werden, Länge des Passworts usw.

Bitte überprüfen Sie diesen Link:

http://tinytute.com/2014/06/03/animated-password-strength-checker-quick-easy/

Die jQuery-Code-Block:

$ (document) .ready (function() {

$("#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+'%'); 

}); 

});