Thread Anforderungen an Zeichenkette prüfen (4 answers)
Opened by volker at 2014-04-25 14:29

volker
 2014-04-25 15:29
#175040 #175040
User since
2014-04-25
2 Artikel
BenutzerIn
[default_avatar]
Über die Sinnhaftigkeit der Bedingungen müssen wir nicht weiter reden, sie sind aus meiner Sicht als gegeben hinzunehmen.

@Raubtier: meintest Du mit "Bedingungen einzeln prüfen" so etwas - könnte der Schnellschuss funktionieren?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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. ### }

View full thread Anforderungen an Zeichenkette prüfen