Als ersten Tipp von mir: "verzichte auf ThashManager und TCipherManager", beide sind eigentlich nur im
DEC damit es überhaupt sichtbare Komponenten für die "Drag&Design" Programmierer gibt. Viel einfacher ist die direkte Anwendung der
DEC Klassen.
Delphi-Quellcode:
function HashFromPassword(const Password: String): String;
begin
Result := THash_SHA1.CalcString(Password, fmtMIME64);
end;
Erzeugt einen SHA1 Digest von Password und konvertiert diesen binären Digest sofort in das Internt MIME Base 64 Format, damit es "lesbar" wird.
Delphi-Quellcode:
function EncryptString(const Value, Password): String;
begin
with TCipher_Blowfish.Create(Password, nil) do
try
Result := EncodeString(Value, fmtMIME64);
finally
Free;
end;
end;
Verschlüsselt den String in Value mit Blowfish/Password. Das Resulat ist der verschlüsselte Wert der sofort wieder in das lesbare MIME64 Format konvertiert wird. Wichtig dabei ist es zu berücksichtigen das das Passwort im Blowfish nicht direkt benutzt wird. Es wird intern in ein Sessionkey umgewandelt Dazu wird mit einer Hash-Funktion Password in den Sessionkey umgewandelt.
Gruß Hagen