Hallo,
ich lasse wie folgt die Passwortstärke berechnen.
Delphi-Quellcode:
procedure TForm1.PassStrength();
var
a, b, c, d, e, f, summezeichen, potenz, jahre: Float;
begin
if UppercaseCB.Checked then a := 26 else a := 0;
if LowercaseCB.Checked then b := 26 else b := 0;
if DigitsCB.Checked then c := 10 else c := 0;
if ArithmoperatorsCB.Checked then d := 5 else d := 0;
if BracketCB.Checked then e := 8 else e := 0;
if SpecialcharsCB.Checked then f := 19 else f := 0;
summezeichen := (a + b + c + d + e + f);
potenz := Power(summezeichen, vPasslength);
jahre := ((potenz / 2096204400) / 31536000) / 1000;
PassStrengthLabel.Left := (Shape1.Width - PassStrengthLabel.Width) div 2;
if Round(jahre) <= 10 then
begin
Shape1.Brush.Color := clRed;
PassStrengthLabel.Caption := FloatToStr(Round(jahre)) + ' ' + 'Schwach';
end else if (Round(jahre) >= 11) and (Round(jahre) <= 70) then
begin
Shape1.Brush.Color := clYellow;
PassStrengthLabel.Caption := FloatToStr(Round(jahre)) + ' ' + 'Gut';
end else
begin
Shape1.Brush.Color := clGreen;
PassStrengthLabel.Caption := FloatToStr(Round(jahre)) + ' ' + 'Sehr gut';
end;
end;
Das funktioniert soweit gut, aber ab und zu bekomme ich diese Fehlermeldung, siehe Screenshot. Ich verstehe schon, dass es irgendwie mit zu großen Zahlen zu tun hat... aber wie ich das löse weiß ich jetzt nicht. Bin für jede Hilfe dankbar. ))