Alternativ zu der Schleife mit Result := Result + ...
Oh, danke, das ist natürlich viel eleganter. Wird allerdings in diesem Programm sowieso nur ein paarmal benötigt, kommt also nicht auf Effizienz an.
Es ist hoffentlich bei aller Euphorie klar, dass dieser Hashwert auf einem UTF-16 string basiert?
Danke, Euphorie habe ich nicht verspürt. Und ja, ist mir klar, in diesem speziellen Fall aber unerheblich.
Also nicht wundern wenn dieser Hashwert z.B. mit einem von einem Webservice ermittelten verglichen wird und man etwas völlig anderes herausbekommt.
Nein, da besteht keine Gefahr, ist nur für Passwort und Username in der Datenbank. Die beiden Felder der Benutzertabelle sind UTF8, und dennoch erhalte ich mittels Locate den richtigen Record beim Programm-Login:
Delphi-Quellcode:
Procedure TFormLogin.Auswerten;
Var
HPass,HUser : String;
begin
Case fLogMode Of
0 : Begin // Login
HUser := GetHashedString(Ed_User.Text);
HPass := GetHashedString(Ed_Pass1.Text);
If DataModul.Q_Benutzer.Locate('BNAME;BPASS',VarArrayOf([HUser,HPass]),[]) Then
ModalResult := mrOk Else
Begin
Fehlertext := 'Falsche Angaben! Programm wird beendet.';
ModalResult := mrClose;
End;
End;
End;
end;