Por qué dos hashes SHA-256 son diferentes y cómo verificar un archivo

Dos cálculos SHA-256 sobre los mismos bytes siempre producen la misma huella. Si los valores realmente difieren, comprueba primero el archivo elegido, el algoritmo y los caracteres invisibles. Una descarga incompleta, un espacio o un salto de línea suelen bastar para cambiar el resultado. Antes de utilizar un archivo descargado, compara su huella completa con la publicada por una fuente fiable.

Elegir entre archivo y texto

Para comprobar un PDF, un archivo comprimido o un programa descargado, utiliza la calculadora de hash de archivos. Calcula SHA-256 sobre los bytes del archivo seleccionado. No copies su contenido en un campo de texto: esa operación puede cambiar la codificación o los finales de línea.

Para comparar una cadena de caracteres, elige el generador de hash SHA-256. Codifica el texto introducido en UTF-8 y calcula su huella, incluidos los espacios y los saltos de línea. Por tanto, un archivo de texto y el texto que ves en pantalla no representan necesariamente los mismos bytes.

Verificar una descarga paso a paso

  1. Busca la huella en el sitio oficial del proveedor, para la versión y el archivo correctos. Un archivo ZIP y el documento que contiene tienen huellas diferentes.
  2. Comprueba que la referencia utiliza SHA-256. Un valor hexadecimal SHA-256 tiene 64 caracteres. La norma define una salida de 256 bits. Referencia del NIST.
  3. En la calculadora de archivos, pulsa «Elegir un archivo». Comprueba el nombre y el tamaño que aparecen y pulsa «Calcular SHA-256».
  4. Usa «Copiar hash» y compara los 64 caracteres con la referencia. El botón copia únicamente la huella; debes hacer la comparación aparte. Las letras hexadecimales A–F y a–f representan los mismos valores.
  5. Si no coinciden, no ejecutes el archivo. Comprueba qué versión necesitas y vuelve a descargarlo desde la fuente oficial. Si la diferencia persiste, pide confirmación al proveedor.

Un ejemplo con un solo salto de línea

En el generador de texto, escribe exactamente abc, sin comillas, espacios ni saltos de línea. Pulsa «Calcular hash». Los tres bytes UTF-8 son 61 62 63 en hexadecimal. El resultado es:

ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

Después, coloca el cursor detrás de la c, pulsa Intro una vez y vuelve a calcular. Con este salto de línea LF, la entrada contiene cuatro bytes: 61 62 63 0a. El resultado pasa a ser:

edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb

Para reproducir estos resultados con archivos, guarda el primero en UTF-8 sin BOM ni salto final, y el segundo con un único LF al final. La calculadora debe mostrar 3 y 4 bytes, respectivamente. Algunos editores añaden automáticamente un salto de línea: revisa ese ajuste.

Las diferencias que no se ven

Un espacio después de una palabra, una tabulación o una línea vacía forman parte del contenido. Los finales de línea LF y CRLF utilizan bytes diferentes. Un archivo UTF-8 con BOM también tiene bytes iniciales adicionales respecto al mismo texto guardado sin BOM.

Los acentos también pueden sorprender: una é y una e seguida de un acento combinante pueden parecer iguales en pantalla y tener representaciones diferentes. El generador no las normaliza automáticamente. El inspector de codificación y convertidor UTF-8 ayuda a examinar el BOM y los finales de línea de archivos de texto de hasta 5 MiB. Debes confirmar la codificación propuesta; sin BOM, no siempre se puede identificar. No conviertas el archivo antes de comprobar su huella original.

Qué permite concluir la verificación

Una coincidencia SHA-256 es una comprobación sólida de integridad, pero no una garantía matemática de unicidad: las funciones hash están diseñadas para que resulte difícil encontrar colisiones. RFC 6234.

No demuestra que el archivo sea inofensivo ni que su autor sea quien dice ser. Si un atacante proporciona tanto un archivo modificado como su huella, ambos coincidirán. La procedencia de la referencia sigue siendo fundamental. Una firma digital verificada con una clave de confianza aporta una comprobación de autenticidad distinta.

Lista de comprobaciones antes de concluir

  • Mismo archivo, misma versión y mismo algoritmo
  • Referencia obtenida de una fuente fiable
  • Huella completa comparada, teniendo en cuenta que las mayúsculas y las minúsculas equivalen en hexadecimal
  • Ninguna modificación, conversión ni nueva exportación entre los cálculos

Preguntas frecuentes

¿Cambiar el nombre de un archivo cambia su huella?

No: el nombre no interviene en el cálculo. En cambio, modificar metadatos almacenados dentro del archivo cambia sus bytes y, normalmente, su huella.

¿Puedo recuperar el archivo a partir de su SHA-256?

SHA-256 no es un cifrado y no tiene una clave de descifrado. Una huella sirve para comparar datos, no para recuperarlos ni para ocultar un secreto predecible.

¿Por qué no se puede procesar un archivo grande?

El cálculo se realiza en el navegador, pero el archivo se carga entero en la memoria. La API utilizada no procesa la entrada por bloques, así que el límite práctico depende del dispositivo y del navegador. Aun así, la página y sus recursos se cargan desde el sitio. Documentación de MDN.