Oggi ho letto dell'hash MD5 e mi chiedevo se fosse possibile. sembra un problema ricorsivo ... o c'è una soluzione?Salvare un hash MD5 di un file di testo nello stesso file di testo?
risposta
è necessario escludere la somma hash dal calcolo. Poi lo hai usato, ma non puoi aggiungere il rum hash alla fine del file aspettandoti che sia corretto, o se calcoli il run su new yu finirai sempre con un nuovo hash MD5. Zare in una storia infinita :)
Beh, non appena si compila la somma MD5 del file cambierà e ottenere un nuovo MD5 - così: no, non è possibile. In teoria solo il trial-and-error potrebbe portare a un documento che contiene il proprio hash ... ma il documento sarebbe probabilmente abbastanza confuso e non contenere nulla di significativo.
Ma è possibile riempire 128 bit con zeri (ad esempio) durante il calcolo. Questo luogo manterrà la somma MD5 e dovrà essere nuovamente zero, quando verificherà l'hash in seguito.
addendum: Non è fattibile ** che sappiamo di **. È abbastanza probabile che qualche futuro supergeni matematico creerà un modo per costruire rapidamente un file del genere. –
@BlueRaja: vedere [qui] (http://www.mscs.dal.ca/~selinger/md5collision/). – sbi
@sbi: che non ha nulla a che fare con questa dose ... –
Non è possibile.
Ma è possibile rinominare il file in base all'hash del suo contenuto, che allega le informazioni senza modificare l'hash.
Bene, l'aggiunta di un hash MD5 a un testo cambia il testo e quindi l'hash MD5. Non è possibile calcolare un hash MD5 dell'hash MD5 testo-compreso-da-essere-calcolato.
Considera qualsiasi hash e immagina di aggiungere del testo a caso. Poiché non v'è una quantità infinita di possibili testi si potrebbe aggiungere, ma solo una quantità finita di possibili hash valori, ci deve essere possibili testi che danno l'hash. Il problema è che potresti non avere abbastanza risorse per trovarlo.
Che cosa si potrebbe essere in grado di provare è se ci sono valori di hash MD5 che, quando hash, yield themselves as a result (grazie a Francesco per questo link!):
Per tutte le possibili permutazioni di un hash MD5, creare l'hash e confronta il risultato con l'originale.
Cioè, l'hash MD5 ammette un punto fisso? Vedi http://stackoverflow.com/questions/235785/is-there-an-md5-fixed-point-where-md5x-x – Francesco
@Francesco: Grazie per il collegamento, l'ho aggiunto alla risposta. – sbi
Stavo pensando di più in questi termini: md5 (merda + x) == x? Intendo un .doc contenente altre cose + le informazioni di hash MD5 alla fine. – bakra
In teoria, è possibile: i possibili contenuti del file sono infiniti, possibili hash non lo sono. In pratica, essere in grado di farlo significherebbe che hai trovato una vulnerabilità nell'algoritmo, rendendo così l'hash inutile per motivi di sicurezza.
Ecco un altro trucco ...
Salva Hash inizio nel file e il calcolare MD5 è escluso che i dati della regione e solo importanti.
"HashMD5 = Md5.ComputeHash(bytes, 382, bytes.Length - 382)"
Quindi conta Hash solo per un'area di dati (Struttura di dati su ordinazione a partire dopo aver compensato 382 nel buffer di file)
------------------- ---- struttura di dati di esempio seguire -----------
<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
inizio nel scrivere questa str di presentare config.bin utilizzando "xxxx.FileSystem.WriteAllBytes()"
file di configurazione Quindi aprire usando l'editor esadecimale trovare la posizione di partenza elemento imbottitura (nel mio caso era 382)
In seguito utilizzare questo non come offset per calcolare MD5 piuttosto su tutto il file. In questo modo si ha poca sicurezza contro i dati corrotti
Nota !! -. finché non di elementi di struttura/ordine/elemento nos rimane iniziare stessa imbottitura posizione rimane la stessa
Lavorare per me ..
Testato. .net
- 1. Come posso creare un digest di hash MD5 da un file di testo?
- 2. Combina gli hash MD5 di più file
- 3. C#: aggiunta * del contenuto * di un file di testo in un altro file di testo
- 4. Il "file di testo occupato" può verificarsi quando due processi cercano di eseguire un file perl nello stesso tempo?
- 5. Filtra un file di testo in un nuovo file di testo
- 6. Come sovrascrivere un file di testo da un file batch
- 7. Salvataggio di un file di testo sul server utilizzando JavaScript
- 8. Come aggiungere testo a un file di testo in C++?
- 9. VirtualTreeView - colore diverso di testo nello stesso nodo
- 10. Leggere un file di testo utilizzando Node.js?
- 11. Aggiunta di testo a un file immagine
- 12. jquery - Leggi un file di testo?
- 13. Leggere un file di testo in java
- 14. Leggere un file di testo con php
- 15. Come salvare un dizionario in un file?
- 16. Come faccio a salvare JSON per file di testo locale
- 17. Combinazione di valori hash MD5
- 18. combinare più file di testo in un unico file di testo utilizzando python
- 19. per inviare un file di testo al server utilizzando javascript
- 20. Condivisione di un file di testo con UIActivityViewController
- 21. Accesso Muti-threaded allo stesso file di testo
- 22. Salva MySQL risultati delle query in un file di testo
- 23. Lettura di un file di testo nell'archivio di guerra
- 24. Scaricamento di un file di testo dal web
- 25. Trova due righe nello stesso file
- 26. Come posso grep per un modello di testo in un file di testo compresso?
- 27. File di testo diviso in più file
- 28. Salvare l'output di un file php in un file html
- 29. Come creare un file di testo temporaneo in C++?
- 30. Come scaricare un file di testo con iPhone SDK?
È possibile ... md5 (merda + x) == x ? come un documento con le proprie informazioni MD5 nella sua ultima pagina? – bakra
Sì, come ho scritto è possibile in teoria - ma per farlo è necessario un sacco di tentativi e fortuna ... non è possibile * costruire * un tale documento con un solo scatto. – tanascius