Bei Hashfunktionen sollte man immer eine
Selbstest-Funktion mit an Bord haben!
Testvektoren findet man auf
Wikipedia.
Also ungefähr so:
Delphi-Quellcode:
procedure MD5Selftest;
begin
if MD5DigestToStr(MD5String('
Franz jagt im komplett verwahrlosten Taxi quer durch Bayern')) <>
'
a3cca2b2aa1e3b5b3b5aad99a8529074'
{bitte alles in Goßbuchstaben, bin gerade zu tippfaul} then
raise Exception.Create('
MD5 Selftest failed');
end;
Für solche Tests sind eigentlich Assertions prädestiniert – das ist schöner als if und raise
Exception.