Rekursives Prüfsummen-Problem (?)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
GregorS
Beiträge: 3172
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Rekursives Prüfsummen-Problem (?)

Beitrag von GregorS » 19.08.2010 21:51:26

Hallo zusammen!

Ich möchte die Prüfsumme einer Datei in der Datei selbst speichern. Dabei ergibt sich das Problem, dass die Datei durch das Speichern der Prüfsumme geändert wird und die Prüfsumme somit nicht mehr stimmt.

Natürlich könnte man die Prüfsumme speichern, eine neue erzeugen und prüfen, ob diese mit der gespeicherten übereinstimmt ... ggf. wiederholt man dies ein paar Milliarden (?) mal, bis das Ergebnis stimmt.

Gibt es einen Weg, der statt der Probiererei immer funktioniert? Vielleicht schon beim ersten Mal?

Oder sehe ich den Wald vor lauter Bäumen nicht?!?

TIA

Gregor

PS: Ein möglicher Weg könnte sein, die Prüfsumme im Dateinamen unterzubringen. Der Dateiname soll allerdings erhalten bleiben, das geht also nicht.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

DeletedUserReAsG

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von DeletedUserReAsG » 19.08.2010 22:15:15

Vielleicht die Prüfsumme am Anfang oder am Ende der Datei unterbringen und ein Script basteln, das zur Prüfung die bestimmte Anzahl Bytes (Prüfsummen haben ja meist eine definierte Länge) am Anfang oder Ende rausnimmt, die Prüfsumme des Restes bestimmt und mit der rausgenommenen Prüfsumme vergleicht? Käme mir spontan in den Kopf - vllt. hilft's ja.

Edit: Andere Möglichkeit wäre die Art, wie es normalerweise gemacht wird: Die Prüfsumme woanders speichern. Zentral, in einer Datenbank, in einem XML-File, in einem per Punkt ausgeblendeten Unterverzeichnis, für jede Datei einzeln oder zusammen, (…)

cu,
niemand

Benutzeravatar
GregorS
Beiträge: 3172
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von GregorS » 19.08.2010 22:22:54

niemand hat geschrieben:... und ein Script basteln ...
Vielen Dank für diese Idee! Allerdings sollen die Daten verwendbar sein, ohne dass man vorher etwas daran fummeln muss.

Ganz konkret: Es geht um Audiodaten. Die Prüfsumme soll im Kommentarfeld des Headers untergebracht werden.

Noch ’n Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

DeletedUserReAsG

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von DeletedUserReAsG » 19.08.2010 22:29:32

Audiodaten == mp3, ogg, flac o.Ä.? Soweit ich weiß, ist da die Länge der Header vorgegeben (kann mich aber auch irren). Wenn das so ist, ist es auch wieder kein Problem, entweder das Feld, oder den ganzen Header rauszunehmen.

cu,
niemand

Benutzeravatar
GregorS
Beiträge: 3172
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von GregorS » 19.08.2010 22:49:23

In meinem Fall geht es um mp3-Dateien.

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

DeletedUserReAsG

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von DeletedUserReAsG » 19.08.2010 23:02:58

Ja, da ginge es: Eine Tabelle für ID3v1 findet sich auf http://de.wikipedia.org/wiki/ID3-Tag

Das ließe sich recht einfach benutzen. Für die anderen Versionen lässt sich bestimmt auch passende Doku ausfindig machen.

cu,
niemand

Benutzeravatar
GregorS
Beiträge: 3172
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von GregorS » 19.08.2010 23:06:37

Du übersiehst allerdings, dass man die Datei vor der Verwendung befummeln muss. Das soll aber nicht sein.

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

DeletedUserReAsG

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von DeletedUserReAsG » 19.08.2010 23:16:27

Warum sollte man? Sobald man einmal die Prüfsumme erstellt, und ins Kommentarfeld (ab Offset 97 bei v1) eingetragen hat, kann jeder Player die abspielen (den Kommentar zeigen die wenigsten an, und wenn, dann steht da halt die Summe) und man kann jederzeit die Daten nach dem Tag mit dem Hash im Tag vergleichen.

Um die Summe da hineinzubekommen, muss man die Datei natürlich bearbeiten (falls du das meintest). Aber das bleibt nunmal nicht aus, wenn man die Summe in der Datei haben will - egal, wie.

cu,
niemand

Benutzeravatar
GregorS
Beiträge: 3172
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von GregorS » 19.08.2010 23:23:25

Ich habe mich missverständlich ausgedrückt. Entschuldigung.

Der Empfänger einer Datei soll prüfen können, ob die Datei unverändert ist, ohne sie ändern zu müssen. Außerdem soll er über die fragliche Datei hinaus keine weiteren Dateien/Informationen benötigen.

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

DeletedUserReAsG

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von DeletedUserReAsG » 19.08.2010 23:34:29

Der Empfänger einer Datei soll prüfen können, ob die Datei unverändert ist, ohne sie ändern zu müssen.
Eben das wäre mit der o.g. Methode möglich. Zudem würde die Prüfsumme da nicht stören - im Gegensatz zu der Variante, die einfach anzuhängen. Das mögen einige Player absolut nicht, und hängen sich ggf. auch schon mal auf.
Außerdem soll er über die fragliche Datei hinaus keine weiteren Dateien/Informationen benötigen.
Das wäre das Problem bei der Sache: Er bräuchte das Script, welches die Summe ausliest, die der Daten erstellt und beide vergleicht. Großzügig angesetzt, wären das einmalig etwa 10kB, die man dem Empfänger zumuten müsste, um das Script zu laden.

Ganz anderer Ansatz wäre, sich einen Algo zu basteln, mit dem man Kollisionen gezielt erzeugen kann. Dann ginge auch das, was du anfangs überlegt hast: Die Prüfsumme der Datei mit der Prüfsumme ist die Prüfsumme. Mit den herkömmlichen geht das jedenfalls nicht, wenn man realistisch ist. Immerhin war es ja auch das Ziel, zu vermeiden, dass sowas funktioniert. Zudem hat man dann quasi Müll in der Datei, die, wie gesagt, manche Player aus dem Tritt bringen würden.

cu,
niemand

Benutzeravatar
GregorS
Beiträge: 3172
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Rekursives Prüfsummen-Problem (?)

Beitrag von GregorS » 19.08.2010 23:42:45

Danke für Deine Antworten! Ich hatte schon befürchtet, dass ich ein Henne/Ei-Problem lösen möchte.

Wenn mir doch noch eine Lösung einfällt, bewerbe ich mich damit um den Nobelpreis für Mathe oder so.

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Antworten