El único trabajo de una función hash

Una función hash toma una entrada de cualquier tamaño; una palabra, una frase, un archivo de varios gigabytes; y produce una cadena de caracteres de longitud fija, de forma determinista: la misma entrada siempre produce exactamente la misma salida, cada vez, en cualquier computadora. Dale una entrada distinta, aunque difiera en un solo bit, y la salida se ve completamente distinta a la anterior. Ese es todo el mecanismo. Un "checksum" es esa salida, usada específicamente para comprobar que algo coincide.

Por qué invertir un bit lo cambia todo

Esta es la propiedad que hace útil a un checksum: una función hash bien diseñada está construida para que cambiar incluso un solo bit de la entrada revuelva aproximadamente la mitad de los bits de salida, de forma impredecible. No existe un hash "más o menos igual" para un archivo "más o menos igual"; una diferencia de un byte y un archivo completamente reescrito producen salidas igualmente distintas de la original. Esto se llama efecto avalancha, y es precisamente por lo que un hash coincidente es significativo: prácticamente no hay forma de que datos corruptos o alterados produzcan accidentalmente el mismo hash que el original.

"hello world" 11 caracteres "hello world." 12 caracteres, un punto añadido b94d27b...2efcde9 SHA-256 7ddb227...9faeb87 SHA-256
Valores SHA-256 reales calculados de forma independiente: añadir un solo punto a la entrada produce un hash sin ningún parecido visible con el original; eso es el efecto avalancha funcionando como debe, no una coincidencia.

Integridad no es autenticidad

Los valores iguales indican que ambas entradas produjeron el mismo resumen. Con un algoritmo resistente como SHA-256, es evidencia de integridad muy fuerte, pero el hash debe llegar por un canal confiable. Si un atacante sustituye archivo y checksum, la comparación pasa. Las firmas digitales abordan la procedencia.

Por qué siguen existiendo algoritmos "rotos"

MD5 y SHA-1 tienen debilidades prácticas de colisión y no deben proteger decisiones frente a adversarios. Todavía detectan muchos errores accidentales, pero conviene usar algoritmos modernos como SHA-256 cuando estén disponibles.

Cómo interpretar el resultado

Dos archivos diferentes pueden compartir teóricamente cualquier hash de longitud fija. Con SHA-256 y sin una debilidad adversarial, una coincidencia accidental es extraordinariamente improbable, no lógicamente imposible.

¿Por qué los checksums parecen letras y números aleatorios? Son una secuencia de bytes (la salida cruda de la función hash) mostrada en hexadecimal, ya que los bytes crudos no son fáciles de leer ni de copiar y pegar de forma fiable como texto.

¿Un hash más largo significa un algoritmo más seguro? Generalmente sí dentro de la misma familia de algoritmos; SHA-512 tiene más bits de salida que SHA-256, lo que dificulta los ataques de fuerza bruta y de colisión -, pero el diseño del algoritmo importa más que la longitud por sí sola, por lo que la salida de 128 bits de MD5 es más débil que la de 160 bits de SHA-1 en mayor medida de lo que sugeriría solo la diferencia de longitud.

Calcula un hash o checksum

El Generador de Hash y Checksum de Orisod calcula MD5, SHA-1, SHA-256, SHA-384 y SHA-512 localmente y compara un valor esperado. Prefiere un hash moderno y una referencia de fuente confiable.

Generar un checksum →

Un checksum responde si los datos coinciden con un resumen de referencia. La confianza en la fuente exige autenticar esa referencia por separado.