Hoy leí sobre el hash MD5 y me preguntaba si esto es posible. parece un problema recursivo ... o hay una solución?¿Guardar un hash MD5 de un archivo de texto en el mismo archivo de texto?
Respuesta
Debe excluir la suma de hash del cálculo. Entonces lo has usado, pero no puedes agregar el hash rum hasta el final del archivo esperando que sea correcto, o si calculas el run over new yu siempre terminará con un nuevo hash MD5. Entrando en una historia interminable :)
Bueno, tan pronto como complete la suma MD5 el archivo cambiará y obtendrá un nuevo MD5 - entonces: no, no es factible. En teoría, solo prueba y error podría llevar a un documento que contiene su propio hash ... pero el documento probablemente sería bastante confuso y no contendría nada significativo.
Pero es posible llenar 128 bit con ceros (por ejemplo) durante el cálculo. Este lugar contendrá la suma MD5 y tiene que ser cero otra vez, al verificar el hash más tarde.
adenda: No es factible ** que sepamos de **. Es muy posible que algún supergenio matemático futuro idee una forma de construir rápidamente un archivo así. –
@BlueRaja: Ver [aquí] (http://www.mscs.dal.ca/~selinger/md5collision/). – sbi
@sbi: que no tiene nada que ver con esto ... duscussion –
No es posible.
Pero puede cambiar el nombre del archivo de acuerdo con el hash de su contenido, que adjunta la información sin cambiar el hash.
Bueno, agregar un hash MD5 a un texto cambia el texto y, por lo tanto, el hash MD5. No es posible calcular un hash MD5 de su hash MD5 con texto incluido para calcular.
Considere cualquier hash e imagínese agregarle texto aleatorio. Puesto que no es una cantidad infinita de posibles textos se podría añadir, pero sólo una cantidad finita de posibles valores de troceo, tiene que haber posibles textos que producen el hash. El problema es que quizás no tenga suficientes recursos para encontrarlo.
Lo que podría ser capaz de tratar es si hay algún valores hash MD5 que, al hash, yield themselves as a result (gracias a Francesco para ese enlace!):
Para todas las permutaciones posibles de un hash MD5, crear el hash y compare el resultado con el original.
Es decir, ¿el hash MD5 admite un punto fijo? Ver http://stackoverflow.com/questions/235785/is-there-an-md5-fixed-point-where-md5x-x – Francesco
@Francesco: Gracias por el enlace, he añadido a la respuesta. – sbi
Yo pensaba más en en estos términos: MD5 (basura + x) == x? me refiero a un .doc contiene otras cosas + la información hash MD5 al final. – bakra
En teoría, es posible: los posibles archivos son infinitos, los posibles hashes no lo son. En la práctica, ser capaz de lograrlo significaría que ha encontrado una vulnerabilidad en el algoritmo, lo que hace que el hash sea inútil por razones de seguridad.
Aquí hay otro truco ...
Guardar Hash en el principio del archivo y calcular MD5 ha excluido que los datos de la región y sólo importantes.
"HashMD5 = Md5.ComputeHash(bytes, 382, bytes.Length - 382)"
para que cuente Hash sólo para la región de datos (estructura de datos personalizados a partir tras el desfase 382 en tampón de archivos)
------------------- ---- estructura de datos de ejemplo sigue -----------
<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
En begining escribir este str para presentar config.bin usando "xxxx.FileSystem.WriteAllBytes()"
archivo de configuración A continuación, abra usando el editor hexadecimal posición de inicio elemento de relleno se encontró (en mi caso era 382)
Posteriormente utilizar este sin que compensar para el cálculo de MD5 en lugar de todo el archivo. De esta manera se tiene poca seguridad contra los datos corruptos
Nota !! -. mientras no de elementos de estructura/orden/elemento nos queda misma acolchado de la posición de arranque sigue siendo igual
trabajo para mí ..
Probado en. .net
- 1. ¿Cómo creo un resumen de hash MD5 desde un archivo de texto?
- 2. guardar un archivo de texto en una variable en bash
- 3. ¿Computing Hash al guardar un archivo?
- 4. Crear, guardar y leer archivo de texto
- 5. ¿Cómo guardar el contenido de un generador de cadenas en un archivo de texto usando SaveFileDialog?
- 6. Filtra un archivo de texto en un nuevo archivo de texto
- 7. Qt - leyendo de un archivo de texto
- 8. ¿Lees un archivo de texto usando Node.js?
- 9. Leyendo un archivo de texto en java
- 10. Contar filas en un archivo de texto
- 11. ¿Cómo agregar texto a un archivo de texto en C++?
- 12. VB.NET Leer Cierto texto en un archivo de texto
- 13. ¿Cómo leer todo el texto de un archivo de bytes []?
- 14. Guardar los elementos de un cuadro de lista en un archivo de texto
- 15. Escuchar en un puerto de red y guardar datos en un archivo de texto
- 16. Sustitución de texto (lectura del archivo y guardado en el mismo archivo) en Linux con sed
- 17. crear un archivo de texto en una carpeta
- 18. ¿Cómo guardo un cuadro de texto multilínea como una línea en un archivo de texto?
- 19. Extraer palabras de un archivo de texto
- 20. ¿Cómo puedo guardar un bloque de texto en modo visual en un archivo en Vim?
- 21. contando el número de líneas en un archivo de texto
- 22. Hash de un texto de celda en Google Spreadsheet
- 23. ¿Cómo extraer texto de un archivo PSD?
- 24. Leyendo un archivo de texto simple
- 25. Abrir un archivo de texto con WPF
- 26. calcular y visualizar el archivo MD5 Hash en una etiqueta
- 27. jquery - ¿Leer un archivo de texto?
- 28. ¿Cómo modificar un archivo de texto?
- 29. Leyendo JSON desde un archivo de texto
- 30. Leer un archivo de texto con php
Es esto posible ... MD5 (basura + x) == x ? como un documento con su propia información MD5 en su última página? – bakra
Sí, como he escrito es posible en teoría - pero para ello requiere una gran cantidad de intentos y la suerte ... no se puede construir * * un documento de este tipo con un disparo. – tanascius