Entwickler-Ecke

Sonstiges (Delphi) - Prüfsumme ermitteln


n-regen - So 23.04.06 11:41
Titel: Prüfsumme ermitteln
Hallo!
Bald geht mein FTP-Server ans Netz, und ich will meinen Besuchern die Möglichkeit geben, zu prüfen, ob die Datei korrekt downgeloadet wurde.
Gibt es in Delphi eine Möglichkeit, die Prüfsumme einer Datei zu ermitteln?
Wenn ja wie und geht es mit verschiedenen Möglichkeiten?


DeadlyAppearance - So 23.04.06 12:05

Sowas?
http://www.delphipraxis.net/post361254.html


n-regen - So 23.04.06 12:10

Sieht ganz gut aus, aber wie use ich das jetzt?


DeadlyAppearance - So 23.04.06 12:51

Diese Komponenten sind ksotenlos und sehr nice. Benutze die selbst.

http://www.cityinthesky.co.uk/cryptography.html


Jakob Schöttl - Mo 24.04.06 18:21
Titel: Andere Lösung
Hi,
Du könntest auch so machen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
const OrginalDatei_Pruefsumme = {z.B. 245);
var PruefSumme,byt: byte;
begin
Filestream1.Read(pruefsumme,1);
While Filestream1.Read(byt,1) = 1 do begin
  PruefSumme := byt xor PruefSumme;
end;
if PruefSumme = OrginalDatei_PruefSumme then ShowMessage('Erfolgreich')
 else ShowMessage('Misserfolg');
end;


So wird das im Prinzip auch bei unserer HeizungsSteuerung gemacht. Die Methode ist ziemlich sicher, außer wenn sich mehrere Fehler aufheben. Wäre aber großer Zufall.

Den Quelltext müsstest du natürlich noch deinen Bedürfnissen anpassen und ich weiß auch nicht, wie man ihn Optimieren kann,
vielleicht irgendwie das Read ganz am anfang weglassen??

Jemand ne Idee?

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt


Marco D. - Mo 24.04.06 18:26

Ich benutze dafür den MD5-Algorithmus. Lade dir md5.pas (Google-Suche: 'md5.pas download'). Diese dann über uses einbinden:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
uses md5;

function FileHash(dateipfad : string):string;
begin
result:=md5print(md5file(dateipfad));
end;