Heute las ich über MD5-Hash und fragte mich, ob das möglich ist. scheint wie ein rekursives Problem ... oder gibt es eine Lösung?Speichern eines MD5-Hash einer Textdatei in derselben Textdatei?
Antwort
Sie müssen die Hash-Summe von der Berechnung ausschließen. Dann können Sie es verwenden, aber Sie können den Hash-Rumm nicht bis zum Ende der Datei hinzufügen, wenn Sie erwarten, dass er korrekt ist, oder wenn Sie den Lauf über neue YU berechnen, wird er immer mit einem neuen MD5-Hash enden. Enjoying in eine unendliche Geschichte :)
Nun, sobald Sie die MD5-Summe ausfüllen die Datei wird ändern und erhalten Sie eine neue MD5 - so: nein, es ist nicht machbar. In der Theorie könnte nur Versuch und Irrtum zu einem Dokument führen, das seinen eigenen Hash enthält ... aber das Dokument wäre wahrscheinlich ziemlich verstümmelt und enthält nichts Bedeutungsvolles.
Es ist jedoch möglich, 128 Bit während der Berechnung mit Nullen (z. B.) zu füllen. Dieser Platz wird die MD5-Summe enthalten und muss wieder Null sein, wenn der Hash später überprüft wird.
Nachtrag: Es ist nicht machbar **, dass wir von ** wissen. Es ist durchaus möglich, dass ein zukünftiges mathematisches Supergenius eine Möglichkeit entwickelt, eine solche Datei schnell zu konstruieren. –
@BlueRaja: Siehe [hier] (http://www.mscs.dal.ca/~selinger/md5collision/). – sbi
@sbi: das hat nichts mit dieser duscussion zu tun ... –
Es ist nicht möglich.
Sie können die Datei jedoch nach dem Hash ihres Inhalts umbenennen, der die Informationen anfügt, ohne den Hash zu ändern.
Nun, das Hinzufügen eines MD5-Hash zu einem Text ändert den Text und damit den MD5-Hash. Das Berechnen eines MD5-Hashwerts Ihres MD5-Hashwerts mit dem Text, der den zu bearbeitenden MDI enthält, ist nicht möglich.
Betrachten Sie jeden Hash und stellen Sie sich vor, dass Sie ihm zufälligen Text hinzufügen. Da es eine unendliche Menge möglicher Texte ist Sie hinzufügen könnte, aber nur eine endliche Menge von möglichen Hash-Werte, muss es möglich sein, die Texte der Hash ergeben. Das Problem ist nur, dass Sie nicht genügend Ressourcen haben, um es zu finden.
Was Sie könnten in der Lage sein, zu versuchen, ob es irgendwelche MD5-Hash-Werte, die, wenn gehasht, yield themselves as a result (dank Francesco für den Link!):
Für alle möglichen Permutationen von MD5-Hash, erstellen Sie den Hash und vergleiche das Ergebnis mit dem Original.
Das heißt, gibt der MD5-Hash einen festen Punkt? Siehe http://stackoverflow.com/questions/235785/is-there-an-md5-fixed-point-where-md5x-x – Francesco
@Francesco: Danke für den Link, ich habe es der Antwort hinzugefügt. – sbi
Ich dachte mehr in diesen Begriffen: md5 (Mist + x) == x? Ich meine eine .doc mit anderen Sachen + die MD5-Hash-Informationen am Ende. – bakra
Theoretisch ist es möglich: mögliche Dateiinhalte sind unendlich, mögliche Hashes nicht. In der Praxis bedeutet dies, dass Sie eine Schwachstelle im Algorithmus gefunden haben, die das Hash für Sicherheitszwecke unbrauchbar macht.
Hier ist ein weiterer Trick ...
Speicher Hash in Anfang der Datei und berechnen MD5, dass Region und nur wichtige Daten auszuschließen.
"HashMD5 = Md5.ComputeHash(bytes, 382, bytes.Length - 382)"
So zählt es Hash nur für Datenbereich
(Custom Datenstruktur nach 382 in Dateipuffer Position offset) ------------------- ---- Beispiel Datenstruktur folgen -----------
<StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Ansi)>
<Serializable()> Structure MyData
Dim FileCheckSum() As Byte '16 bytes HASh for file 'Config.bin'
Dim Padding() As Byte ' 0xFF x 20 bytes
Dim RemoteDevice As RmtDevice
End Structure
schreiben diese str In begining config.bin mit „xxxx.FileSystem einzureichen.(WriteAllBytes)“
Dann öffnet config-Datei mit Hex-Editor Position des Polsterelement Start finden (in meinem Fall war es 382)
Später verwenden Sie diese nicht als Offset zu MD5 eher auf ganze Datei zu berechnen. So kann eine wenig Sicherheit gegen Daten korrupt hat
Hinweis !! -. Solange keine Strukturelemente/Ordnung/Element nos bleibt gleiche Polsterung Startposition gleich bleibt
für mich arbeiten ..
Geprüft. .net
- 1. ArrayList in Textdatei speichern
- 2. letzte Ergebnisse in einer Textdatei speichern
- 3. Wie Spracherkennungsausgabe in einer Textdatei speichern
- 4. Speichern JTextField Eingaben in Textdatei
- 5. RDD Als Textdatei speichern
- 6. Xamarin android speichern Textdatei
- 7. Suchzeichenfolge pro Zeile in einer Textdatei. Wenn gefunden, speichern Sie alle Zeilen in einer anderen Textdatei
- 8. Speichern einer Kopie der Textdatei von Matlab
- 9. Ersetzen eines Wortes in einer Textdatei
- 10. HTML5/JavaScript: Textdatei öffnen, laden TextArea-/speichern TextArea- Inhalt Textdatei
- 11. Speichern von Daten in eine Textdatei
- 12. Entfernen Sie Zeichenfolge in einer Textdatei aus einer anderen Textdatei
- 13. Hochladen einer Textdatei in ASP.NET
- 14. Speichern einer Textdatei in einer SQL-Datenbank ohne Spaltennamen
- 15. URL-Parameterdaten in Textdatei speichern. Php
- 16. mehrzeilige in Textdatei lesen und in einer anderen Textdatei
- 17. Anfügen eines Satzes mit einer Textdatei
- 18. Textdatei in nicht-String-Array speichern
- 19. R-Liste in eine Textdatei speichern
- 20. Suchen einer Textdatei C#
- 21. Drucken eines aus einer Textdatei erstellten Arrays
- 22. Speichern Sie jede Zeile in einer Textdatei in einem Array
- 23. Speichern von Clustern in einer Textdatei in rapidminer 7
- 24. JAVA Lesen einer Textdatei und Importieren einer Textdatei
- 25. Wie Zeilen in Textdatei nach einer zweiten Textdatei zu sortieren
- 26. Textdatei in DB-Tabelle speichern mit oData
- 27. Laden/Ändern/Speichern von Änderungen in Textdatei
- 28. Docker-Ausgabe in eine Textdatei speichern
- 29. wie man Zeilenergebnis in Textdatei speichern
- 30. Dekomprimieren einer Textdatei
Ist das möglich ... md5 (mist + x) == x ? wie ein Dokument mit eigenen MD5-Informationen auf der letzten Seite? – bakra
Ja, wie ich geschrieben habe, ist es in der Theorie möglich - aber um das zu tun, bedarf es einer Menge Versuche und Glück ... man kann ein solches Dokument nicht mit einem einzigen Schuss konstruieren *. – tanascius