Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Problem mit Hash Werten (https://www.delphipraxis.net/172548-problem-mit-hash-werten.html)

franktron 10. Jan 2013 10:20

Problem mit Hash Werten
 
Ich habe ein Prog was Daten abgleichen tut dazu erzeuge ich aus eine Tabelle eine XML Datei, aus der wiederum erstelle ich eine Hash Wert (MD5,THash_RipeMD256 hab beide Probiert)
Jetzt ist der Hashwert aber immer gleich wenn ich z.b. nur den Namen um 1 Zeichen ändere z.b. Kind zu Kind 1.

Wie kann ich das ändern das ich jede Änderung mitkriege.

Hier der Hash Code

Delphi-Quellcode:
function MD5(const fileName : string) : string;
var
   //idmd5 : TIdHashMessageDigest5;
   fs : TFileStream;
begin
   //idmd5 := TIdHashMessageDigest5.Create;
   fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite);
    try
     //result := idmd5.HashStreamAsHex(fs);
    Result:=THash_RipeMD256.CalcStream(fs,fs.Size,TFormat_HEX);
   finally
     fs.Free;
       //idmd5.Free;
    end;
end

DeddyH 10. Jan 2013 10:47

AW: Problem mit Hash Werten
 
Ich habe kein DEC hier, aber musst Du vielleicht zuerst den Stream auf den Anfang positionieren?
Delphi-Quellcode:
fs.Seek(0, soFromBeginning);
Result:=THash_RipeMD256.CalcStream(fs,fs.Size,TFormat_HEX);

p80286 10. Jan 2013 10:50

AW: Problem mit Hash Werten
 
Er hat Ihn doch gerade erst eröffnet, da sollter er aber eigentlich auf 0 stehen.
Was verbirgt sich denn hinter
Delphi-Quellcode:
THash_RipeMD256
?
Muß man da vielleicht noch etwas anderes vorher definieren?

Gruß
K-H

user0815 10. Jan 2013 10:51

AW: Problem mit Hash Werten
 
eben ausprobiert, Dein MD5 Code funktioniert. Habe dazu ne TXT Datei genommen & die manuell abgeändert (1 Zeichen) = anderer Hashwert

Delphi-Quellcode:
function MD5(const fileName : string) : string;
var
  idmd5 : TIdHashMessageDigest5;
  fs : TFileStream;
begin
  idmd5 := TIdHashMessageDigest5.Create;
  fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;

  try
    result := idmd5.HashStreamAsHex(fs);
  finally
    fs.Free;
    idmd5.Free;
  end;

franktron 10. Jan 2013 11:30

AW: Problem mit Hash Werten
 
Sry mein Fehler der Kunde hat das Lager so eingestellt das nichts mehr exportiert werden kann und ein leeres Lager ist immer gleich :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz