![]() |
Passwort Sicherheit Code anwenden
Hallo,
ich habe eine Frage: Wie wende ich den Code von Hagen an? Code:
Delphi-Quellcode:
Wie kann ich den jetzt z.B.:
function PassphraseQuality(const Password: String): Extended;
// returns computed Quality in range 0.0 to 1.0 // source extracted from Delphi Encryption Compendium, DEC function Entropy(P: PByteArray; L: Integer): Extended; var Freq: Extended; I: Integer; Accu: array[Byte] of LongWord; begin Result := 0.0; if L <= 0 then Exit; FillChar(Accu, SizeOf(Accu), 0); for I := 0 to L-1 do Inc(Accu[P[I]]); for I := 0 to 255 do if Accu[I] <> 0 then begin Freq := Accu[I] / L; Result := Result - Freq * (Ln(Freq) / Ln(2)); end; end; function Differency: Extended; var S: String; L,I: Integer; begin Result := 0.0; L := Length(Password); if L <= 1 then Exit; SetLength(S, L-1); for I := 2 to L do Byte(S[I-1]) := Byte(Password[I-1]) - Byte(Password[I]); Result := Entropy(Pointer(S), Length(S)); end; function KeyDiff: Extended; const Table = '^1234567890ß´qwertzuiopü+asdfghjklöä#<yxcvbnm,.-°!"§$%&/()=?`QWERTZUIOPÜ*ASDFGHJKLÖÄ''>YXCVBNM;:_'; var S: String; L,I,J: Integer; begin Result := 0.0; L := Length(Password); if L <= 1 then Exit; S := Password; UniqueString(S); for I := 1 to L do begin J := Pos(S[I], Table); if J > 0 then S[I] := Char(J); end; for I := 2 to L do Byte(S[I-1]) := Byte(S[I-1]) - Byte(S[I]); Result := Entropy(Pointer(S), L-1); end; const GoodLength = 10.0; // good length of Passphrases var L: Extended; begin Result := Entropy(Pointer(Password), Length(Password)); if Result <> 0 then begin Result := Result * (Ln(Length(Password)) / Ln(GoodLength)); L := KeyDiff + Differency; if L <> 0 then L := L / 64; Result := Result * L; if Result < 0 then Result := -Result; if Result > 1 then Result := 1; end; end;
Delphi-Quellcode:
Aber das geht ja nich, wie mache ich das?
procedure Tneu_account.Edit1Change(Sender: TObject);
begin ProgressBar1.Position:=PassphraseQuality(edit1.Text); end; |
Re: Passwort Sicherheit Code anwenden
186 Beiträge und noch nie von
![]() EDIT: Eventuell Ganz bestimmt musst du das auch noch multiplizieren ;) |
Re: Passwort Sicherheit Code anwenden
Zitat:
Stimmt ja :wall: |
Re: Passwort Sicherheit Code anwenden
Schau dir mal die ersten 2 Zeilen von Hagens Code an:
Code:
Daraus solltest du eigentlich erkennen können, was zu tun ist :zwinker:
function PassphraseQuality(const Password: String): [b]Extended[/b];
// returns computed Quality in [b]range 0.0 to 1.0[/b] |
Re: Passwort Sicherheit Code anwenden
hab nochn problem, habe jetzt mit round eingebaut, doch es funzt net...
Erst wenn ich vill über 200buchstaben und zahlen eingegeben hab gewegt sich ein balken^^ ?? Was hab ich falsch gemacht? |
Re: Passwort Sicherheit Code anwenden
schau dir einfach mein edit oben an...
|
Re: Passwort Sicherheit Code anwenden
Zitat:
|
Re: Passwort Sicherheit Code anwenden
Also, jetzt nochmal für Leute mit dem :stupid:-smiley im avatar:
Delphi-Quellcode:
Unter der annahme, progressbar1.Min = 0
Progressbar1.position := round(passlevel * Progressbar1.max);
PS: so früh ist coden schon schwierig... |
Re: Passwort Sicherheit Code anwenden
Exakt, und wenn man sich das mal genau überlegt so wird man sicherlich auch feststellen das ich mir dabei was gedacht hatte :)
Die Funktion gibt einen Wert zwischen 0.0 für schlecht und 1.0 für super gut zurück. Wenn du das in Prozent umrechnen willst dann also einfach mit 100 multiplizieren. Hast du aber eine ProgressBar die maximal bis 25 geht hast, dann eben mit 25 multiplizieren. Einfacher gehts nicht ;) Berücksichtige aber auch das diese Funktion kein "Allerheilmittel" sein kann, eher ein Anhaltspunkt. Ein gutes Passwort kann man "niemals" berechnen, ansonsten wäre es ja nicht mehr sicher. Ergo wird es auch nie einen einfachen Algorithmus geben können der ein Passwort mit hoher Genauigkeit als sicher/unsicher einstufen kann. Relativ gesehen wurde aber alles im Algo. berücksichtigt was technisch sinnvoll und umsetzbar ist. Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz