Prüfsumme auf Datei

Von der Installation bis zur Auslieferung der Applikation

Moderator: Moderatoren

Prüfsumme auf Datei

Beitragvon Jan » Sa, 25. Jul 2015 6:57

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11630
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Prüfsumme auf Datei

Beitragvon satmax » Sa, 25. Jul 2015 7:28

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/
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
 
Beiträge: 776
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich

Re: Prüfsumme auf Datei

Beitragvon Jan » Sa, 25. Jul 2015 7:35

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11630
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Prüfsumme auf Datei

Beitragvon Manfred » Sa, 25. Jul 2015 7:42

wäre FileCheck() aus den Tools eine Möglichkeit?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 16097
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Prüfsumme auf Datei

Beitragvon satmax » Sa, 25. Jul 2015 7:42

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.
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
 
Beiträge: 776
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich

Re: Prüfsumme auf Datei

Beitragvon Jan » Sa, 25. Jul 2015 7:48

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11630
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Prüfsumme auf Datei

Beitragvon Manfred » Sa, 25. Jul 2015 7:50

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 16097
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Prüfsumme auf Datei

Beitragvon Werner_Bayern » Sa, 25. Jul 2015 14:07

Servus Jan,

du nutzt doch auch ot4xb? Dann ist es ein 3zeiler:
Code: Alles auswählen
   nFile := fopen(cDatei)
   hHash := HFile2Md5Hex(nFile)
   fclose(nFile)


Hat sich sehr bewährt bei uns.
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Prüfsumme auf Datei

Beitragvon Jan » Sa, 25. Jul 2015 14:25

Hallo Werner,

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11630
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Prüfsumme auf Datei

Beitragvon AUGE_OHR » Sa, 25. Jul 2015 21:40

satmax hat geschrieben:Ich würde da eventuell gleich einen anderen Weg gehen, zippen.
YUP ... wer eine DLL oder EXE "so" verschickt hat selbst Schuld wenn es "kaputt" ankommt.

p.s. ich würde das Windows ZIP System nehmen zu ein-/auspacken.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10211
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg


Zurück zu Installation und Redistribution

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast