Met deze functie controleer ik of een wachtwoord wel sterk genoeg is
delphi Code:
type
TDigits = set of '1'..'9';
TLower = set of 'a'..'z';
TUpper = set of 'A'..'Z';
function TFrmWachtwoord.StrongPassword : boolean;
var Digits : TDigits;
Lower : TLower;
Upper : TUpper;
aCkTeller : array[0..2] of byte;
WW : string;
Index : integer;
begin
result := false;
WW := EWachtwoord.Text;
aCkTeller[0] := 0;
aCkTeller[1] := 0;
aCkTeller[2] := 0;
for Index := 1 to length(WW) do
begin
if WW[index] in Digits then
aCkTeller[0] := aCkTeller[0] + 1
else if WW[index] in Lower then
aCkTeller[1] := aCkTeller[1] + 1
else if WW[index] in Upper then
aCkTeller[2] := aCkTeller[2] + 1
end;
result := (aCkTeller[0] > 1) and (aCkTeller[1] > 1) and (aCkTeller[2] > 1);
end;
Als ik wachtwoord 'Bell1234' controleer, komt de functie terug met de waarde false. De waarde aCkTeller geeft dan ook {4,0,1}. Dat false terug wordt gegeven, klopt wel, maar volgens het wachtwoord moet aCkTeller[1] de waarde 3 hebben en niet 0.
Wat is er dan fout aan deze functie
Bookmarks