# nimm aus $Neupw1 beginnend bei Position 0 die ersten 8 Zeichen als $Neupw1kurz my $Neupw1kurz = substr($Neupw1,0,8); # $SortedNeupw1kurz ergibt sich aus dem umsortierten $Neupw1kurz (gleiche Buchstaben stehen hintereinander) my $SortedNeupw1kurz = join('',sort(split(//,$Neupw1kurz))); # kuerzer als 7 Zeichen? if ( length($Neupw1) < 7) { $Fehlertext .= 'Passwort ist zu kurz'; } # laenger als 20 Zeichen? if ( length($Neupw1) > 20) { $Fehlertext .= 'Passwort ist zu lang'; } # erstes Zeichen ein Buchstabe oder eine Ziffer? if( $Neupw1kurz !~ /^(?=[a-zA-Z0-9].*$/) ) { $Fehlertext .= 'erstes Zeichen ist weder Buchstabe noch Ziffer'; } # innerhalb der ersten 8 Zeichen darf kein Zeichen öfter als dreimal vorkommen if($SortedNeupw1kurz =~ /(.)\1{3,}/) { $Fehlertext .= 'ein Zeichen tritt öfter als dreimal auf'; } # enthaelt nur zulaessige Zeichen? if( $Neupw1kurz !~ /^(?=[a-zA-Z0-9~!@#%_+-{}[]:,.?/*]*$/) ) { $Fehlertext .= 'enthält unzulässige Zeichen'; } # sind innerhalb der ersten 8 (nun zulaessigen) Zeichen mindestens 4 Buchstaben enthalten? if( $Neupw1kurz !~ /^(?=.*[a-zA-Z].*[a-zA-Z].*[a-zA-Z].*[a-zA-Z].*$/) ) { $Fehlertext .= 'es müssen mindestens 4 Buchstaben enthalten sein'; } # innerhalb der ersten 8 Zeichen mindestens eine Ziffer oder ein oben genanntes Sonderzeichen enthalten? if($Neupw1kurz !~ /^(?=.*[0-9~!@#%_+-{}[]:,.?/*].*$/) ) { $Fehlertext .= 'es ist weder Ziffer noch Sonderzeichen enthalten'; } if (length($Fehlertext)) { ### String entspricht nicht den Bedingungen, Fehlerausschrift präsentieren, usw. ### }