Prüfsumme auf Datei
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Prüfsumme auf Datei
Für meine Software habe ich ein Updatemodul geschrieben, das automatisch auf dem Server nachsieht, ob es eine aktuellere Version für die Programmdateien gibt. Das fuktioniert auch sehr gut. Vor Allem selektiv - es werden nur die Dateien herunter geladen, die wirklich aktualsiert wurden. Auch heute hat noch nicht jeder Kunde einen Breitbandanschluß ...
Sporadisch passiert es aber Kunden, daß das Update sauber durchläuft, die Dateien ausgetauscht werden, dann aber eine Windows-Fehlermeldung sagt, das eine dll nicht für den Betrieb unter Windows geeignet sei. Was soviel heißt wie: Das Teil ist bei der Übertragung zerschossen worden.
Jetzt überlege ich, in meine Updateroutine eine Prüfung einzubauen. Das zu jeder Datei eine Prüsumme gespeichert wird. Nach dem Download wird kontrolliert, ob die heruntergeladene Datei diese Prüfsumme hat, und wenn nicht, wird die noch einmal herunter geladen.
Aber: Wie komme ich an diese Prüfsumme? Macht es Sinn, eine Alaska-Standard-Funktion wie Char2Hash() zu benutzen? Oder bietet Alaska etwas passenderes? Oder muß man besser auf ganz was anderes asuweichen? Quasi-Standard ist ja die MD5, aber sowas bietet Alaska leider nicht, auch nicht in der 2.0.
Jan
Sporadisch passiert es aber Kunden, daß das Update sauber durchläuft, die Dateien ausgetauscht werden, dann aber eine Windows-Fehlermeldung sagt, das eine dll nicht für den Betrieb unter Windows geeignet sei. Was soviel heißt wie: Das Teil ist bei der Übertragung zerschossen worden.
Jetzt überlege ich, in meine Updateroutine eine Prüfung einzubauen. Das zu jeder Datei eine Prüsumme gespeichert wird. Nach dem Download wird kontrolliert, ob die heruntergeladene Datei diese Prüfsumme hat, und wenn nicht, wird die noch einmal herunter geladen.
Aber: Wie komme ich an diese Prüfsumme? Macht es Sinn, eine Alaska-Standard-Funktion wie Char2Hash() zu benutzen? Oder bietet Alaska etwas passenderes? Oder muß man besser auf ganz was anderes asuweichen? Quasi-Standard ist ja die MD5, aber sowas bietet Alaska leider nicht, auch nicht in der 2.0.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Prüfsumme auf Datei
Für MD5 gibt es zahlreiche Lösungen, auch Command Line Programme:
von MS: https://www.microsoft.com/en-us/downloa ... x?id=11533
oder auch: http://winmd5.com/
von MS: https://www.microsoft.com/en-us/downloa ... x?id=11533
oder auch: http://winmd5.com/
Gruß
Markus
Markus
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Prüfsumme auf Datei
Hallo Markus,
Danke für die beiden Links. Mir wäre aber eine Lösung lieber, die ich in meinen Code einbauen kann. Es widerstrebt mir, meinen Kunden noch eine Datei mehr ausliefern zu müssen, nur damit die sehr sporadische Updatefehler abfangen können. Wenn es garnicht anders ginge würde ich aber auch das in Kauf nehmen.
Ich kenne mich in der Materie nicht aus. Aber naiv gefragt: Muß es unbedingt MD5 sein? Würde nicht eventell auch ein Char2Hash() reichen? Oder SecureKey()? Oder eine andere Xbase++-Funktion?
Jan
Danke für die beiden Links. Mir wäre aber eine Lösung lieber, die ich in meinen Code einbauen kann. Es widerstrebt mir, meinen Kunden noch eine Datei mehr ausliefern zu müssen, nur damit die sehr sporadische Updatefehler abfangen können. Wenn es garnicht anders ginge würde ich aber auch das in Kauf nehmen.
Ich kenne mich in der Materie nicht aus. Aber naiv gefragt: Muß es unbedingt MD5 sein? Würde nicht eventell auch ein Char2Hash() reichen? Oder SecureKey()? Oder eine andere Xbase++-Funktion?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21214
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Prüfsumme auf Datei
wäre FileCheck() aus den Tools eine Möglichkeit?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Prüfsumme auf Datei
IMHO ist Char2Hash() nur für Strings, nicht für Binary-> Char2Hash( <cString> ) --> cHash
Ich würde da eventuell gleich einen anderen Weg gehen, zippen. Da hast automatisch eine Prüfung, ein fehlerhaftes ZIP kannst gar nicht erst entpacken.
Ich würde da eventuell gleich einen anderen Weg gehen, zippen. Da hast automatisch eine Prüfung, ein fehlerhaftes ZIP kannst gar nicht erst entpacken.
Gruß
Markus
Markus
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Prüfsumme auf Datei
Manfred,
auch eine gute Idee. An die Tools hatte ich nicht gedacht. Wenn auch das wieder eine zusätzliche dll bedeuten würde, was ich ja eigentlich vermeiden wollte.
Markus,
hmmm. Würde natürlich zusätzlich die Übertragungen beschleunigen. Aber ich müsste dann auch die komplette Update-Routine umschreiben.
Jan
auch eine gute Idee. An die Tools hatte ich nicht gedacht. Wenn auch das wieder eine zusätzliche dll bedeuten würde, was ich ja eigentlich vermeiden wollte.
Markus,
hmmm. Würde natürlich zusätzlich die Übertragungen beschleunigen. Aber ich müsste dann auch die komplette Update-Routine umschreiben.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21214
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Prüfsumme auf Datei
ja sicher, aber wenn Du dann die Zusatzdll benutzt, dann hast Du auch wieder einen großen Pool an zusätzlichen guten Funktionen. So ganz ohne sind die nämlich nicht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Prüfsumme auf Datei
Servus Jan,
du nutzt doch auch ot4xb? Dann ist es ein 3zeiler:
Hat sich sehr bewährt bei uns.
du nutzt doch auch ot4xb? Dann ist es ein 3zeiler:
Code: Alles auswählen
nFile := fopen(cDatei)
hHash := HFile2Md5Hex(nFile)
fclose(nFile)
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Prüfsumme auf Datei
Hallo Werner,
interessante Variante. Vor Allem wäre das wieder "Standard" MD5. Schau ich mir mal näher an.
Jan
interessante Variante. Vor Allem wäre das wieder "Standard" MD5. Schau ich mir mal näher an.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Prüfsumme auf Datei
YUP ... wer eine DLL oder EXE "so" verschickt hat selbst Schuld wenn es "kaputt" ankommt.satmax hat geschrieben:Ich würde da eventuell gleich einen anderen Weg gehen, zippen.
p.s. ich würde das Windows ZIP System nehmen zu ein-/auspacken.
gruss by OHR
Jimmy
Jimmy