Hellau, Mädels und Jungs.. Mal wieder ich mit einer übergreifenden Frage:
Wie würdet Ihr die Stärke eines Passworts ermitteln?
Ich hab gestern abend -eher zum Spaß- mal daran gesessen. Wörterbuchvergleiche sollte man wohl vergessen. Jetzt würd ich gerne mal hören, welche Schwerpunkte beim Bemessen der Stärke Ihr einfließen lassen würdet..
Mein Ergebnis ist hier Online : http://www.phreekz.de/DLS/tutorials/pwtest/
Interessante Vergleiche:
Lisa1986 - Wertung 1 - schrecklich
Lisa196 - Wertung 17 - nicht besonders
lisa196 - Wertung 8 - schrecklich
liSa196 - Wertung 113 - recht gut
liSa196D - Wertung 168 - sicher!
Ein Passwort wie ruf12345 bekommt auch nur 6 Punkte.
aje8d629 ist knapp ok mit 19 Punkten, dennoch sieht aje8d629 besser aus als Lisa196.
Der php-code sieht so aus:
Andere Codes zB
Schloebe - Test - Source
Andere Codes - Hier - Hier - Hier
mfg chmee
Wie würdet Ihr die Stärke eines Passworts ermitteln?
Ich hab gestern abend -eher zum Spaß- mal daran gesessen. Wörterbuchvergleiche sollte man wohl vergessen. Jetzt würd ich gerne mal hören, welche Schwerpunkte beim Bemessen der Stärke Ihr einfließen lassen würdet..
Mein Ergebnis ist hier Online : http://www.phreekz.de/DLS/tutorials/pwtest/
Interessante Vergleiche:
Lisa1986 - Wertung 1 - schrecklich
Lisa196 - Wertung 17 - nicht besonders
lisa196 - Wertung 8 - schrecklich
liSa196 - Wertung 113 - recht gut
liSa196D - Wertung 168 - sicher!
Ein Passwort wie ruf12345 bekommt auch nur 6 Punkte.
aje8d629 ist knapp ok mit 19 Punkten, dennoch sieht aje8d629 besser aus als Lisa196.
Der php-code sieht so aus:
PHP:
<?php
if($_POST['pw'])
{ $password=$_POST['pw'];
$pw_strength=0;$pw_strength_b=0;$pw_strength_s=0;$pw_strength_c=0;$pw_strength_word=0;
$length=strlen($password);
// ---- Tastaturreihenabfrage noch nicht eingebaut.
$typo="qwertzuiopasdfghjklyxcvbnm";
$typorev=strrev($typo);
// ----- Vorkommen von Kleinbuchstaben,Großbuchstaben, Zahlen und Sonderzeichen
preg_match_all ("([A-Z]+)", $password, $matches);
$pw_strength_b+=count($matches[0]);
preg_match_all ("([a-z]+)", $password, $matches);
$pw_strength_s+=count($matches[0]);
preg_match_all ("([0-9]+)", $password, $matches);
$pw_strength_c+=count($matches[0]);
preg_match_all('/[^A-Za-z0-9]+/',$password,$matches);
$pw_strength_u+=count($matches[0])*2;
// ----- Zeichenvorrat bewerten
if( ( $pw_strength_b!=0)||($pw_strength_s!=0)||($pw_strength_c!=0)||($pw_strength_u!=0) )
{ $pw_strength = $pw_strength_b*0.9+$pw_strength_s*0.6+$pw_strength_c*0.6+$pw_strength_u*1.5; }
if( (($pw_strength_b!=0)&&($pw_strength_s!=0))&&($pw_strength_c!=0)||($pw_strength_u!=0))
{ $pw_strength=3.3*($pw_strength_b*1.5+$pw_strength_s*1.2+$pw_strength_c+$pw_strength_u);}
if( ($pw_strength_b!=0)&&($pw_strength_s!=0)&&($pw_strength_c!=0)&&($pw_strength_u!=0))
{ $pw_strength=4*($pw_strength_b+$pw_strength_s+$pw_strength_c+$pw_strength_u);}
if( (($pw_strength_b!=0)&&($pw_strength_s==0)&&($pw_strength_c==0)&&($pw_strength_u==0))
||
(($pw_strength_b==0)&&($pw_strength_s!=0)&&($pw_strength_c==0)&&($pw_strength_u==0))
||
(($pw_strength_b==0)&&($pw_strength_s==0)&&($pw_strength_c!=0)&&($pw_strength_u==0))
||
(($pw_strength_b==0)&&($pw_strength_s==0)&&($pw_strength_c==0)&&($pw_strength_u!=0)))
{ $pw_strength=$pw_strength_b+$pw_strength_s+$pw_strength_c+$pw_strength_u*4; }
if( $pw_strength_u!=0)
{$pw_strength=$pw_strength*2;}
// ----- Vorkommen von Wiederholungen oder Aufzaehlungen (Zahlen schwaecher bewertet)
$nexloop=0;$sameloop=0;$decloop=0;
if($length>1){
for($i=1;$i<$length;$i++)
{ $zeichen_j=ord($password[$i]);
$zeichen_d=ord($password[$i-1]);
if($zeichen_j==$zeichen_d){if(ord($password[$i])>64){$sameloop=$sameloop+2;}else{$sameloop++;}}
if($zeichen_j==(1+$zeichen_d)){if($zeichen_j>64){$nexloop=$nexloop+3;}else{$nexloop++;}}
if($zeichen_j==($zeichen_d-1)){if($zeichen_j>64){$decloop=$decloop+2;}else{$decloop++;}}
}
}
$loop=1+($sameloop*0.2+$nexloop*0.1+$decloop*0.1);
// ----- Wörter mit Großbuchstaben und mind 3.kleinbuchstaben negativ werten
preg_match_all('/[A-Z]{1}+[a-z]{3,}+/', $password, $matches);
$pw_strength_word=count($matches[0])*5;
if($pw_strength_word!=0){$pw_strength=$pw_strength/$pw_strength_word;}
if($loop>0)
{ $pw_strength=$length*$pw_strength/$loop;}
else
{ $pw_strength=$length*$pw_strength; }
// ----- Länge bewerten
if($length<4){$pw_strength=$pw_strength/2;}
if($length<7){$pw_strength=$pw_strength/2;}
if($length>9){$pw_strength=$pw_strength*1.4;}
// ----- Jahreszahl enthalten
for($jahr=1910;$jahr<2010;$jahr++){if(strpos($password,(string)$jahr)!=null){$pw_strength=$pw_strength/10;$jahr=2011;}}
}
else
{$pw_strength=0;}
echo $pw_strength;
?>
Andere Codes zB
Schloebe - Test - Source
Andere Codes - Hier - Hier - Hier
mfg chmee