Rekursives Prüfsummen-Problem (?)
Rekursives Prüfsummen-Problem (?)
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.
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])
Re: Rekursives Prüfsummen-Problem (?)
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
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
Re: Rekursives Prüfsummen-Problem (?)
Vielen Dank für diese Idee! Allerdings sollen die Daten verwendbar sein, ohne dass man vorher etwas daran fummeln muss.niemand hat geschrieben:... und ein Script basteln ...
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])
Re: Rekursives Prüfsummen-Problem (?)
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
cu,
niemand
Re: Rekursives Prüfsummen-Problem (?)
In meinem Fall geht es um mp3-Dateien.
Gruß
Gregor
Gruß
Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: Rekursives Prüfsummen-Problem (?)
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
Das ließe sich recht einfach benutzen. Für die anderen Versionen lässt sich bestimmt auch passende Doku ausfindig machen.
cu,
niemand
Re: Rekursives Prüfsummen-Problem (?)
Du übersiehst allerdings, dass man die Datei vor der Verwendung befummeln muss. Das soll aber nicht sein.
Gruß
Gregor
Gruß
Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: Rekursives Prüfsummen-Problem (?)
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
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
Re: Rekursives Prüfsummen-Problem (?)
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
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])
Re: Rekursives Prüfsummen-Problem (?)
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.Der Empfänger einer Datei soll prüfen können, ob die Datei unverändert ist, ohne sie ändern zu müssen.
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.Außerdem soll er über die fragliche Datei hinaus keine weiteren Dateien/Informationen benötigen.
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
Re: Rekursives Prüfsummen-Problem (?)
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 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])