Matze: Passwort Prüffunktion

Beitrag lesen

Hallo,

Nein, auch konsequent durchgehaltene Rechtschreibfehler wie lenght statt length sind ein Fehler :-)

eigentlich hab ich mich nur 1 mal vertippt, dann aber das zweite dahingehend (falsch) geändert weil ich mir nicht sicher war welche Version richtig ist :)

// a) Mindestlänge,

Mir ging es primär um den Sinn meiner Funktion. Die Abfrage nach der Mindestlänge habe ich der Übersicht halber raus gelassen. Erlaubt sind 6 bis 16 Zeichen. Eine Maximallänge vorzuschreiben ist zwar IMHO blödsinn, aber so fange ich irgendwelchen Murks ab falls ein User nur mal kurz wild auf der Tastatur rum tippt. Ebenso dürfen Name und Passwort nicht vom gleichen Typ mit dem selben Wert sein.

// b) erlaubter Zeichenvorrat,

Nun nachdem wir uns einig sind, dass Sonderzeichen im PW sinnvoll sind, brauch ich da überhaupt noch eine Prüfung nach dem Zeichenvorrat oder sollte ich nicht vielleicht alles durch lassen? Vielleicht nur Leerzeichen filtern.

// c) vorgeschriebene Zeichengruppen, die vorkommen müssen,

Wie Alex richtig vermutet hat ("Natürlich geht dass nur wenn du die Sicherheit als Tipp nimmst, d.h. wenn auch thoretisch unsicher PWD akzeptiert werden"), geht es mir nicht um ein "absolut sicheres" Passwort, eher um eine Abfrage um den gröbsten Unfug abzufangen.

// d) Hält das Passwort einem Wörterbuchangriff stand (...)
// Das Passwort sollte nicht in einem Wörterbuch gefunden werden

Das mit dem Wörterbuchangriff find ich interessant. Nur wie soll ich prüfen, ob das übergebene PW ein Wort ist? In der Richtung hab ich mich noch nie beschäftigt.

Wenn das PW allerdings wirklich so kryptisch sein soll, empfiehlt es sich da nicht das PW gleich selbst zu kreieren?

Ungefähr so (ungetestet):

  
 function xstring($leng){  
  $zeichen = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz12345678901234567890";  
  for($i = 0; $i < $leng; $i++ ){  
   $n = rand() % strlen($zeichen);  
   $randstring .= substr($zeichen,$n,1);}  
  return $randstring;  
 }  

Müsste man natürlich noch um ein paar Sonderzeichen erweitern.

// Daher sollte die Funktion auch keinen Wahrheitswert zurückliefern, sondern
// einen Stärkewert, so wie es auch die entsprechende Crack-Funktion macht ...

Schau ich mir an, danke.

[1] Wie krieg ich hier eigentlich Tabs in den Text gesetzt?

Wandle sie mit der entsprechenden Funktion Deines Editors in Leerzeichen um.

Ich meinte eigentlich hier im Forum :)

@Alex: Doch doch, der Code tut genau das was ich will (trotz Rechtschreibfehler^^)

Grüße, Matze