Hi Uli,
bei mir liefert TestHashHEX 03BEBC72 mit
DEC 5.2 und D2009.
Übrigens: Glückwunsch zum "Lösen" der Probleme im anderen Thread.
Vielleicht ein Problem mit CheckEqual?
Getestet per
Delphi-Quellcode:
procedure TestHashHEX;
var
strResultV3: ANSIString;
strResultV5: ANSIString;
cResult: Cardinal;
FText: AnsiString;
begin
FText := '
This is a confidential ANSI Text';
strResultV3 := '
03BEBC72';
//Hash.THash_CRC32.CalcString(FText, nil, fmtHEX);
cResult := CRCCalc(CRC_32CCITT, PAnsiChar(FText)^, Length(FText));
strResultV5 := TFormat_HEX.Encode(cResult, 4);
Memo1.Lines.Add(strResultV3);
Memo1.Lines.Add(strResultV5);
end;
und einem einfachen Memo.
Nachtrag: CheckEqualsString hat keine überladene Funktion für AnsiString. Vielleicht liegt hier irgendwo das Problem. Schreibt Dir selbst mal ein Overload dafür.
Ein einfaches
Delphi-Quellcode:
if strResultv3 = strResultV5 then
Memo1.Lines.Add('jup');
gibt mir jedenfalls in obigem Testcase ebenfalls das gewünschte "jup" aus.
Edit2:
Bei der Umstellung war ich doch nicht nachlässig: Ich habe gegen jeden Cipher, Hash und das Text-Encoding Vergleichstests gefahren. Teilweise automatisch (aus Part_I\DECTest) und auch manuell mit Testvektoren und Monte-Carlo-Tests (z.B. bei Rijndael mit Vorgaben vom NIST).
Anbei mal die Ergebnisliste aus dem DECTest. Die ist aber auch im
DEC 5.2 mit dabei und mit D2009 erstellt.
Gruß Assertor