Forum: Sonstige Fragen zu Delphi
by Sir Rufo,
23. Feb 2015
Das ist doch auch logisch.
Username und Passwort werden von Delphi erfasst (Edit) und damit UTF-16. Darauf werden dann die Hashwerte ermittelt und der Hexcodierte-Hashwert als string (UTF-16) an die Datenbank gegeben. Dabei erfolgt eine implizite Umwandlung von UTF-16 nach UTF-8 durch die Zugriffskomponente.
Forum: Sonstige Fragen zu Delphi
by Sir Rufo,
23. Feb 2015
Es ist hoffentlich bei aller Euphorie klar, dass dieser Hashwert auf einem UTF-16 string basiert?
Also nicht wundern wenn dieser Hashwert z.B. mit einem von einem Webservice ermittelten verglichen wird und man etwas völlig anderes herausbekommt.
mMn gehört zu so einer Funktion immer eine überladene dazu, wo man das Encoding angeben kann
function GetHashedString( const AWort : string ):...
Forum: Sonstige Fragen zu Delphi
by Sir Rufo,
23. Feb 2015
Wenn man weiß, was ein Hashwert ist und woraus ein Hashwert ausschließlich gebildet werden kann, dann ist alles viel klarer:
Was man dann aus dieser Bytefolge macht (Malen nach Zahlen, in einen HexString umwandeln, ...) ist dann reine Präsentation der Bytefolge. Nicht mehr, nicht weniger.
Ein Hauptgrund, warum die meisten beim Hashen auf die Nase fallen "Delphi-PHP", "Delphi-C#", .... liegt...