Hi
ich wollt ma fragen wie Hashverfahren funktionieren...
beziehen die wirklich jedes einzelne Byte in die Berechnung mit ein?
wie rechnen die überhaupt damit?
also ich hab mir selbst mal ein einfaches gebastelt...in wieweit ist das typisch für vorhandene Algos?
oder wie funktioniert zum beispiel MD5?
Delphi-Quellcode:
function Hash(FileName: TFileName):String;
var FS: TFileStream;
i, Sum: Int64;
Buf: Byte;
begin
i:=0;
Sum:=0;
FS:=Nil;
try
FS:=TFileStream.Create(FileName,fmOpenRead or fmShareExclusive);
Status.Max:=FS.Size div 1024;
repeat
FS.Read(Buf,1);
FS.Position:=FS.Position+1023;
inc(i);
Sum:=Sum+Buf*i;
Sum:=Sum Mod 4294967295;
until FS.Position>=FS.Size;
Sum:=Sum*FS.Size;
finally
FS.Free;
Result:=IntToStr(Sum);
end;
end;