Generador de hashes y calculadora de sumas de comprobación: MD5 y SHA-256
Genera hashes MD5, SHA-1, SHA-256, SHA-512 y CRC-32 de cualquier texto, compáralos con una suma de comprobación publicada y observa el efecto avalancha.
Bits del resumen que cambian al invertir un bit de entrada
141bits
SHA-256 transforma estos 43 bytes en un hash de 256 bits. Invertir un solo bit de entrada cambió 141 de los 256 bits del hash (55.1 %); así, entradas casi idénticas producen hashes sin relación aparente.
Prueba del efecto avalancha, SHA-256 (primeros 64 de 256 bits)
Resumen hash de la entrada
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
Resumen con el bit 0 del byte 1 invertido
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
Bits diferentes
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
Porcentaje de bits del resumen que cambian al modificar un bit de entrada
Cómo se calcula S
Codificar el texto como UTF-8
Caracteres: 43 → bytes: 43 (344 bits).
Rellenar hasta completar bloques
blocks=⌊64n+8⌋+1=⌊6443+8⌋+1=1
Se añaden un bit 1, ceros y la longitud del mensaje en 64 bits para que el mensaje rellenado sea un múltiplo de 512 bits.
Ejecutar la función de compresión
1block×64rounds=64rounds
Cada bloque actualiza un estado de ocho palabras de 32 bits, que se suma al estado acumulado al terminar el bloque.
Acerca de Generador de hashes y calculadora de sumas de comprobación: MD5 y SHA-256
Un hash criptográfico transforma cualquier entrada en un resumen de tamaño fijo: 128 bits para MD5, 160 para SHA-1, 256 para SHA-256 y 512 para SHA-512. CRC-32 es una suma de comprobación de 32 bits para detectar errores. El texto se codifica en UTF-8, se rellena hasta completar bloques de 512 o 1024 bits y pasa por las rondas de compresión del algoritmo, según NIST FIPS 180-4 y RFC 1321.
Sirve para verificar descargas frente a una suma publicada, comparar archivos y probar código. La frase inicial, «The quick brown fox jumps over the lazy dog», tiene el resumen SHA-256 d7a8fbb3…37c9e592. Cambiar un bit de entrada modifica 141 de sus 256 bits, cerca de la mitad esperada en un buen hash.
MD5 y SHA-1 tienen ataques de colisión prácticos; usa SHA-256 o SHA-512 cuando alguien pueda manipular los datos.
Calcular el resumen del texto exacto
La calculadora produce resúmenes MD5, SHA-1, SHA-256, SHA-512 y CRC-32 de texto codificado como UTF-8. Puede comparar el algoritmo seleccionado con una suma proporcionada e ilustrar cómo cambia el resumen al modificar un bit de entrada. El contenido exacto del campo determina los bytes procesados.
La frase inicial, The quick brown fox jumps over the lazy dog, contiene 43 bytes UTF-8. Su SHA-256 es d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592. Conserva el texto en inglés para reproducir ese ejemplo: traducirlo cambia la entrada. Mayúsculas, espacios y puntuación también forman parte del mensaje; añadir un punto final produce otro resumen.
El campo admite texto, sin cargar archivos. Pegar el nombre de un archivo calcula el resumen de sus caracteres, no el de su contenido. Para comprobar un archivo descargado, utiliza una herramienta que procese sus bytes reales y compara el resultado con una suma publicada por una fuente de confianza.
Algoritmo y representación de salida
El algoritmo seleccionado proporciona el resumen principal y los otros cuatro aparecen como salidas adicionales. MD5 tiene 128 bits; SHA-1, 160; SHA-256, 256; SHA-512, 512; y CRC-32, 32. Su longitud permanece fija aunque aumente el mensaje de entrada. El tamaño del resumen y el tamaño del texto son cantidades diferentes.
Hexadecimal utiliza dos caracteres por byte del resumen. SHA-256 ocupa 64 dígitos hexadecimales y SHA-512, 128. La opción HEX cambia las letras a mayúsculas sin modificar los bytes. Base64 representa esos mismos bytes con otro alfabeto y otra longitud; no es un segundo algoritmo de resumen.
Tampoco se codifica como Base64 la cadena hexadecimal visible. Para SHA-256 de abc, el resumen Base64 es ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=. Codificar el texto de sus 64 caracteres hexadecimales daría una cadena diferente y más larga. Selecciona la representación que corresponda a la suma de referencia.
Saltos de línea y bytes Unicode
El texto abc ocupa tres bytes y su SHA-256 es ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, como en el ejemplo trabajado de SHA-256 del NIST. El mensaje debe coincidir byte a byte para reproducir esa respuesta.
Activar la opción de salto de línea añade el byte 0A. La entrada pasa a cuatro bytes y el resumen es edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. La opción siempre añade un salto: si el texto ya termina con uno, habrá otro más. Comprueba líneas vacías y espacios finales al comparar con una herramienta de terminal.
El texto no ASCII puede necesitar varios bytes por carácter. héllo €😀 contiene ocho puntos de código Unicode y 14 bytes UTF-8. El codificador de texto muestra los bytes individuales. Dos textos de aspecto similar pueden tener diferentes representaciones Unicode: é precompuesta y e seguida de acento combinante no contienen los mismos bytes.
La calculadora no normaliza esas secuencias antes de calcular el resumen. Su límite es 100000 bytes UTF-8, incluido el salto añadido. No representa cien mil caracteres visibles. Una entrada con muchos caracteres de varios bytes alcanza ese límite antes que una entrada ASCII con el mismo número de caracteres.
Revisar una comparación de sumas
El campo de comparación ignora espacios y admite hexadecimal con prefijo opcional 0x. Las letras hexadecimales se comparan sin distinguir mayúsculas. En Base64, las mayúsculas y minúsculas sí representan valores distintos y se mantienen relevantes para la comparación.
Si la suma corresponde a otro algoritmo disponible, se indica que no coincide con el algoritmo seleccionado y se identifica el otro resumen coincidente. Pegar MD5 de abc cuando está seleccionado SHA-256 no convierte la comprobación de SHA-256 en una coincidencia. Mantén coherentes el algoritmo, la representación y los bytes originales.
Una longitud inesperada o una cadena mal formada puede aparecer como suma no coincidente, sin invalidar el texto que se está procesando. Lee el resultado junto con los avisos. La herramienta compara los valores aportados, pero no establece el origen de una suma publicada. La igualdad por sí sola tampoco autentica al editor si alguien puede sustituir tanto un archivo como su suma.
Interpretar el cambio de bits
Para un mensaje no vacío, la calculadora invierte el bit menos significativo del primer byte y vuelve a procesar esos bytes. La cuenta de bits cambiados comprende todo el resumen seleccionado. El dibujo muestra como máximo sus primeros 64 bits, por lo que puede exhibir menos cambios que el total indicado.
En el ejemplo inicial de SHA-256 cambian 141 de 256 bits; con abc, cambian 112. Un experimento individual no tiene que cambiar exactamente la mitad de las posiciones. El ejemplo ilustra el efecto de una modificación de entrada, sin certificar por sí solo la seguridad del algoritmo.
Escenario
Bytes de entrada
Bits del resumen
Bits cambiados
Predeterminado
43
256
141
sha256 abc
3
256
112
Salto de línea añadido
4
256
127
Valor de comprobación CRC
9
32
15
Unicode UTF-8
14
256
119
La fila CRC utiliza 123456789 y produce CBF43926 con CRC-32 en hexadecimal mayúsculo. La fila de salto utiliza abc con el byte adicional. Una entrada vacía tiene resumen, pero no hay un primer byte que invertir y se omite la cuenta de cambios.
Integridad y protección de contraseñas
RFC 6151 descarta MD5 para usos que necesitan resistencia a colisiones. El aviso de transición de SHA-1 del NIST dirige su sustitución. CRC-32 detecta errores accidentales y no proporciona resistencia criptográfica a manipulaciones. Un resumen rápido sin sal ni factor de trabajo tampoco es un sistema de almacenamiento de contraseñas. La herramienta de contraseñas aborda su generación y estimaciones por separado.
Fuente de comprobación: Comprobación del ejemplo: Ejemplo SHA-512 de dos bloques de FIPS 180-4 / NIST CSRC
Preguntas
¿Sigue siendo seguro usar MD5?
No para seguridad. En 2004 se publicaron colisiones prácticas de MD5, y en 2008 se usaron para falsificar un certificado de autoridad de certificación de confianza. RFC 6151 (2011) considera MD5 inaceptable cuando se exige resistencia a colisiones, como en firmas digitales. Aún detecta corrupción accidental en una descarga, pero para datos que un atacante pueda alterar usa SHA-256 o SHA-512, definidos en NIST FIPS 180-4.
¿Qué diferencia hay entre SHA-1 y SHA-256?
SHA-256 produce un resumen de 256 bits (64 cifras hexadecimales), frente a los 160 bits de SHA-1 (40 cifras), y no tiene ataques de colisión prácticos conocidos. Google y CWI Ámsterdam publicaron la primera colisión de SHA-1, SHAttered, en 2017. NIST anunció la retirada de SHA-1 para protección criptográfica en todas las aplicaciones antes del 31 de diciembre de 2030. Ambos algoritmos pertenecen a FIPS 180-4.
¿Cómo verifico la suma de comprobación de un archivo?
Calcula el hash del archivo descargado y compáralo con la suma publicada por una fuente fiable; cualquier diferencia indica que el archivo ha cambiado. En Linux usa sha256sum file; en macOS, shasum -a 256 file; y en Windows, certutil -hashfile file SHA256 o Get-FileHash de PowerShell, que usa SHA-256 de forma predeterminada. El cuadro de comparación hace lo mismo para texto e ignora mayúsculas y espacios.
¿Por qué echo text | sha256sum produce otro hash?
Porque echo añade un salto de línea: el comando calcula el hash de abc más un salto (4 bytes), no de abc (3 bytes). Un byte adicional cambia todo el resumen: SHA-256 de abc empieza por ba7816bf, mientras que con un salto de línea empieza por edeaaff3. Usa echo -n o printf '%s' para procesar solo el texto, o activa aquí la opción de salto de línea para reproducir echo.
¿Dos entradas diferentes pueden tener el mismo hash?
Sí, porque un número ilimitado de entradas se asigna a un conjunto finito de resúmenes, pero en un hash seguro no debería ser viable encontrar una pareja así. Por la cota del cumpleaños, una búsqueda por fuerza bruta requiere unos 2^(n/2) intentos para un resumen de n bits: 2^64 para MD5 y 2^128 para SHA-256. Los ataques conocidos encuentran colisiones de MD5 y SHA-1 mucho más rápido; las de CRC-32 pueden calcularse directamente porque CRC es lineal.
Esta calculadora incluye 11 ejemplos resueltos con respuestas de fuentes independientes. Forman parte del conjunto de pruebas y también puedes ejecutarlos aquí.
Pon esta calculadora en tu sitio
Pega esto donde quieras que aparezca la calculadora. Su uso es gratuito, se mantiene al día con las correcciones que hacemos aquí y el crédito que aparece debajo enlaza con la versión completa, para que tus lectores puedan consultarla.