¿Qué es wodiaonimagehai md5 de 32 bits?
MD5(111111,16) = 965eb72c92a549dd
Es mejor pescar que aceptar el pescado. Los siguientes son dos sitios web para consultar md5
www.cmd5.com
www.xmd5.com
El nombre completo de MD5 es Algoritmo 5 de resumen de mensajes , desarrollado por Desarrollado por el Laboratorio de Computación del MIT a principios de la década de 1990. Fue desarrollado a principios de la década de 1990 por Ronald L. Rivest del MIT Computer Science Laboratory y RSA Data Security Inc, y ha evolucionado a través de MD2, MD3 y MD4. El objetivo es "comprimir" una gran cantidad de información en un formato confidencial (es decir, convertir una cadena de bytes de longitud arbitraria en un número entero grande de cierta longitud) antes de utilizar un software de firma digital para firmar la clave privada. Ya sea MD2, MD4 o MD5, todos toman un mensaje de longitud aleatoria y producen un resumen de mensaje de 128 bits. Aunque las estructuras de estos algoritmos son muy similares, el diseño de MD2 es completamente diferente de MD4 y MD5 porque MD2 está optimizado para computadoras de 8 bits, mientras que MD4 y MD5 están optimizados para computadoras de 32 bits. Las descripciones y el código fuente C para estos tres algoritmos se describen en detalle en Internet RFC 1321, el documento más autorizado presentado al IEFT en agosto de 1992 por Ronald L. Rivest.
Rivest desarrolló el algoritmo MD2 en 1989. En este algoritmo, la información primero se rellena con datos de modo que la longitud en bytes de la información sea múltiplo de 16. Luego, se agrega una suma de verificación de 16 bits al final del mensaje. Luego se calcula un valor hash en función de la información recién generada. Más tarde, Rogier y Chauvaud descubrieron que omitir la suma de comprobación provocaba conflictos MD2. El resultado del cifrado del algoritmo MD2 es único y no tiene duplicaciones.
Para mejorar la seguridad del algoritmo, Rivest desarrolló el algoritmo MD4 en 1990. Este algoritmo también requiere completar información para garantizar que la longitud de bytes de la información pueda ser divisible por 512 al sumar 448 ( longitud de bytes de información mod 512 = 448). Luego agregue la longitud inicial del mensaje binario de 64 bits. La información se procesa en bloques de 512 bits de iteraciones Damgörd/Merkle, y cada bloque se procesa en tres pasos distintos. Den Boer, Bosselaers y otros descubrieron rápidamente vulnerabilidades que atacaban el primer y tercer paso de la versión MD4. Dobbertin mostró al grupo cómo usar una PC normal para encontrar una versión completa de MD4 en cuestión de minutos (el conflicto era en realidad una vulnerabilidad que podía cifrar contenido diferente pero obtener el mismo resultado de cifrado). No hay duda de que MD4 está obsoleto.
A pesar de sus vulnerabilidades de seguridad, MD4 generó varios algoritmos de cifrado de seguridad de la información posteriores. Además de MD5, también existen algoritmos conocidos como SHA-1, RIPE-MD y HAVAL.
Un año después, en 1991, Rivest desarrolló el algoritmo MD5, técnicamente más maduro. Añade el concepto de "cinturón de seguridad" basado en MD4. Aunque MD5 es ligeramente más lento que MD4, es más seguro. El algoritmo aparentemente consta de cuatro pasos y está diseñado de forma ligeramente diferente al MD4. En MD5, donde el tamaño del resumen del mensaje y los requisitos de relleno son los mismos que en MD4, Den Boer y Bosselaers encontraron colisiones espurias en MD5 pero por lo demás no encontraron otras consecuencias criptográficas.
Van Oorschot y Wiener consideraron utilizar una función hash de fuerza bruta para buscar colisiones en hashes, y especularon que una máquina diseñada específicamente para buscar colisiones MD5 (cuya fabricación costó alrededor de 1 millón de dólares en 1994) ) detecta una media de una colisión cada 24 días. Sin embargo, en los 10 años transcurridos entre 1991 y 2001, el algoritmo MD5 no ha sido reemplazado y MD6 no sabe cuál es su nombre. Este hecho en sí muestra que esta falla no tuvo mucho impacto en la seguridad de MD5. Ninguno de los anteriores es lo suficientemente grave como para ser un problema real con MD5. Además, dado que el algoritmo MD5 no requiere regalías para su uso en general (en aplicaciones que no son de alto secreto), esto tampoco es un problema. Pero incluso si se usa en campos ultrasecretos, MD5 no es una buena tecnología intermedia y MD5 debería ser muy seguro sin importar cómo se mire.
Aplicaciones del algoritmo
Una aplicación típica de MD5 es generar codificaciones de mensajes para evitar manipulaciones. Por ejemplo, muchas descargas de software en UNIX tienen el mismo nombre de archivo y extensión de archivo .md5, que normalmente tiene una sola línea de texto y su estructura general es la siguiente:
MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461
Este es el archivo tanajiya.tar.gz.
Esta es la firma digital del archivo tanajiya.tar.gz. MD5 trata el archivo completo como un mensaje de texto grande y, a través de su algoritmo de conversión de cadenas irreversible, produce un resumen de mensaje MD5 único. Si el contenido del archivo cambia de alguna manera durante la propagación posterior de este archivo (incluidas modificaciones humanas o errores de transmisión causados por líneas inestables durante el proceso de descarga, etc.), siempre que se vuelva a calcular el MD5 de este archivo, la información Se encontrará el resumen. Es diferente, por lo que puede determinar que lo que obtuvo es simplemente un archivo incorrecto. Si existe una autoridad de certificación de terceros, el uso de MD5 también puede evitar que el autor del archivo sea "repudiado". Esta es la llamada aplicación de firma digital.
MD5 también se utiliza ampliamente en tecnología de cifrado y descifrado. Por ejemplo, en sistemas UNIX, la contraseña de un usuario se cifra mediante MD5 (u otro algoritmo similar) y se almacena en el sistema de archivos. Cuando un usuario inicia sesión, la contraseña ingresada por el usuario se calcula como un valor MD5 y luego se compara con el valor MD5 almacenado en el sistema de archivos para determinar si la contraseña ingresada es correcta. De esta manera, el sistema puede determinar la legitimidad del inicio de sesión del usuario sin conocer la contraseña del usuario. Esto no sólo evita que los usuarios con derechos de administrador del sistema conozcan la contraseña del usuario, sino que también aumenta hasta cierto punto la dificultad de descifrar la contraseña.
Debido a esto, uno de los métodos más comunes para descifrar contraseñas utilizados por los piratas informáticos es "ejecutar un diccionario". Hay dos formas de obtener un diccionario: una es una colección diaria de tablas de cadenas utilizadas como contraseñas y la otra se genera mediante el método de sustitución. Primero, use el programa MD5 para calcular los valores MD5 de estas entradas del diccionario. y luego use los valores MD5 en este diccionario de destino de búsqueda. Supongamos que la longitud máxima de la contraseña es de 8 bytes y que la contraseña solo puede contener letras y números, *** 26 + 26 + 10 = 62 caracteres, entonces el número de entradas del diccionario generadas por la disposición es P (62,1 )+P(62,2)....+P(62,8), ese ya es un número muy astronómico. Para almacenar este diccionario se requiere una matriz de discos de nivel TB, y este método también tiene un requisito previo, que es. para obtener El valor MD5 de la contraseña de la cuenta de destino funcionará. Esta tecnología de cifrado se usa ampliamente en los sistemas UNIX, lo cual es una razón importante por la cual los sistemas UNIX son más poderosos que los sistemas operativos comunes.
Descripción del algoritmo
Una breve descripción del algoritmo MD5 es la siguiente: MD5 divide la información de entrada en subgrupos de 512 bits para su procesamiento, y cada subgrupo se divide en 16 subgrupos de 32 bits. subgrupos de bits. Después de una serie de procesos, la salida del algoritmo consta de cuatro subgrupos de 32 bits, que se apilan para producir un valor hash de 128 bits.
En el algoritmo MD5, primero es necesario rellenar el mensaje para que su longitud en bytes sea igual al resto de 512. De esta manera, la longitud en bytes (longitud en bits) del mensaje se expandirá a N * 512 + 448 , es decir, N * 64 + 56 bytes (Bytes), N es un número entero positivo. El método de llenado es el siguiente: complete un 1 e innumerables 0 al final del mensaje y deje de completar 0 en el mensaje hasta que se cumplan las condiciones anteriores. Luego, la longitud de la información antes del relleno se agrega a este resultado en formato binario de 64 bits. Después de estos dos pasos, la longitud del byte del mensaje ahora es = N*512+448+64=(N+1)*512, es decir, la longitud es exactamente un múltiplo entero de 512. El motivo es cumplir los requisitos de longitud del mensaje durante el procesamiento posterior.
Hay cuatro parámetros enteros de 32 bits en MD5 llamados variables de cadena: A=0x01234567, B=0x89abcdef, C=0xfedcba98 y D=0x76543210.
Después de configurar las cuatro variables de la cadena, puede ingresar las cuatro rondas del algoritmo. El número de ciclos es el número de paquetes de información de 512 bits en el mensaje.
Las cuatro variables de enlace anteriores se copian en otras cuatro variables: a a a, b a b, c a c y d a d.
El bucle principal tiene cuatro rondas (MD4 solo tiene tres), cada una de las cuales es muy similar. La primera ronda realiza 16 operaciones. Cada operación realiza una función no lineal en tres variables a, b, cy d. Luego, recorra el resultado en un número indeterminado y agregue uno de a, b, c o d. Finalmente, reemplace a, b, c o d con ese resultado.
A continuación se muestran las cuatro funciones no lineales utilizadas en cada operación (una para cada ronda).
F(X,Y,Z) = (X&Y)|((~X)&Z)
G(X,Y,Z) = (X&Z)|(Y&( ~Z))
H(X,Y,Z) = X^Y^Z
I(X,Y,Z) = Y^(X|(~Z) )
(& es AND, | es OR, ~ NO es, ^ es etc.)
Explicación sobre estas cuatro funciones: Si los bits correspondientes de X, Y y Z es independiente y unificado, entonces cada bit del resultado también debe ser independiente y unificado.
F es una función bit a bit. La función H es un operador de paridad bit a bit.
Supongamos que Mj representa el j-ésimo subgrupo de información (de 0 a 15), <<
FF(a,b,c,d,Mj,s,ti) representa a=b+((a+(F(b,c,d)+Mj+ti)<< GG(a,b,c,d,Mj,s,ti) significa a=b+((a+(G( b , c,d)+Mj+ti)<HH(a,b,c,d,Mj,s,ti) significa a=b+((a+(H(b,c,d)+Mj+ti)< < II(a,b,c,d,Mj,s,ti) significa a=b+((a+(I(b,c,d)+Mj+ti)<<
Cuatro rondas ( 64 Pasos) son respectivamente
Ronda 1
FF (a,b,c,d,M0,7,0xd76aa478)
FF (d,a, b,c,M1,12,0xe8c7b756)
FF (c,d,a,b,M2,17,0x242070db)
FF (b,c,d,a, M3,22,0xc1bdceee)
FF (a,b,c,d,M4, 7,0xf57c0faf)
FF(d,a,b,c,M5,12, 0x4787c62a)
FF(c,d,a,b,M6,17,0xa8304613)
FF(b,c,d,a,M7,22,0xfd469501) p> p>
FF(a,b,c,d,M8,7,0x698098d8)
FF(d,a,b,c,M9,12,0x8b44f7af)
FF (c,d,a M10,17,0xffff5bb1)
FF (b,c,d,a,M11,22,0x895cd7be)
FF (a, b, c,d,M12,7,0x6b901122)
FF (d,a,b,c,M13,12,0xfd987193)
FF (d,b,c, M13, 12. 0xfd987193)
FF(d,b,c,M13,12,0xfd987193)
FF(c,d,a,b,M14,17,0xa679438e)
p>FF(b,c,d,a,M15,22,0x49b40821)
Segunda ronda
GG (a,b,c,d ,M1, 5,0xf61e2562)
GG (d,a,b.C,M6,9,0xc040b340)
GG (c,d,a,b,M11,14,0x265e5a51 )
p>GG(b,c,d,a,M0,20,0xe9b6c7aa)
GG(a,b,c,d,M5,5,0xd62f105d)
GG(d,a,b,c,M10,9,0x02441453)
GG(c,d,a,b,M15,14,0xd8a1e681)
GG(b ,c,d,a,M4,20,0xe7d3fbc8)
GG (a,b,c,d,M9,5, 0x21e1cde6)
GG ( d,a,b ,c,M14,9,0xc33707d6)
GG (c,d,a,b,M3,14,0xf4d50d87)
GG (b,c, d,a,M8 ,20,0x455a14ed)
GG(a,b.
GG(a,b,c,d,M13,5,0xa9e3e905)
GG(d,a,b,c,M2,9,0xfcefa3f8)<
/p>
GG(c,d,a,b,M7,14,0x676f02d9)
GG(b,c,d,a,M12,20,0x8d2a4c2)