Einzelnen Beitrag anzeigen

AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Fehler beim Passwortstärkeberechnung

  Alt 11. Dez 2014, 10:45
Delphi-Version: 7
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. ))
Miniaturansicht angehängter Grafiken
screenshot-fehlermeldung.png  
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat