Danke für die Tips,
ich habe jetzt auch erste Ergebnisse,
Also wenn ich die Strings in UTF8 umwandel ist alles ok,
Danke.
Allerdings funktioniert das leider nicht mit Buffern( also Array of byte) da die länge nicht mehr passt.
oder mache ich bei bei der Umwanddlung einen Fehler?
Delphi-Quellcode:
Var // Str : TMemorystream;
B : Array of Byte;
s : RawByteString;
le : Integer;
begin
// s := UTF8Encode(memo1.lines.text);
s := AnsiToUtf8(memo1.lines.text);
le := length(S);
setlength(B,le);
move(s,B,le);
// B := byte('ö'); // Hier ist B = Decimal 246 ist OK kleines oe
// Label1.Caption := THash_MD5.CalcStream(Str,Str.size,TFormat_HEX);
Label1.Caption := THash_MD5.CalcBuffer(b,le ,TFormat_HEX);
// Label1.Caption := THash_MD5.CalcBinary(S,TFormat_HEX);
// Richtig wäre a172480f4e21d0a124bac19c89569c59 (lt Internet)
// Berechnet ist 44F2C50B838F92970D2C11E2FA98BC7D
end;
Die Daten die ich per MD5 berechnen möchte stammen aus einem
XML-Dokument (TXMLDocument) hier ist in der Formatierung UTF8 angegeben.Wenn das
XML-Dokument fertig erzeigt ist wird alles per SaveToStream gespeichert und dieser Stream wird dann in einen Buffer geladen und aus diesem Buffer wid dann der MD5 berechnet.
Müsste ich dann den Stream erst wieder in UTf8 Konvertieren und dann den MD5 berechnen oder geht das nicht auch irgendwie einfacher?