Qué es un hash
Un hash es un cálculo que resume unos datos, sean del tamaño que sean, en un valor de longitud fija. La misma entrada da siempre el mismo valor, y basta un cambio mínimo en la entrada para que el valor entero sea otro. Del resultado no se pueden recuperar los datos originales.
Escribe hello en el cuadro de texto y el SHA-256 es 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824. Con Hello, que solo cambia la primera letra a mayúscula, sale 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969, que no se parece en nada al anterior. Gracias a esa propiedad, comparar dos hashes es suficiente para saber si dos datos son iguales. Al hash que se usa así, para comprobar, se le llama también checksum o suma de verificación.
Cómo se usa
- En Tipo de entrada, elige «Texto» o «Archivo». El texto va en el cuadro «Texto para calcular el hash»; el archivo se arrastra o se selecciona, y vale cualquier formato.
- En Algoritmos a calcular, activa los que necesites. Cada botón se enciende y se apaga al pulsarlo, y puedes tener varios encendidos a la vez. Si los apagas todos, aparece «Selecciona al menos un algoritmo.»
- En Formato de salida, elige entre «Hex (minúsculas)», «Hex (mayúsculas)» y «Base64».
- En Resultados del hash aparece una línea por cada algoritmo activado.
- Si tienes un valor con el que comparar, pégalo en Comparar con un hash esperado.
| Algoritmo | Longitud del hash | Dígitos hexadecimales | Activado por defecto |
|---|---|---|---|
| MD5 | 128 bits | 32 | Sí |
| SHA-1 | 160 bits | 40 | Sí |
| SHA-256 | 256 bits | 64 | Sí |
| SHA-384 | 384 bits | 96 | Sí |
| SHA-512 | 512 bits | 128 | Sí |
| SHA3-256 | 256 bits | 64 | No |
| BLAKE3 | 256 bits | 64 | No |
SHA3-256 mide lo mismo que SHA-256, pero pertenece a la familia SHA-3, diseñada de otra manera que SHA-2, y por eso da un valor distinto con la misma entrada. BLAKE3 es un algoritmo que no forma parte de los estándares del NIST (National Institute of Standards and Technology, el instituto de normalización de Estados Unidos). En Base64 el mismo valor ocupa menos: 24 caracteres el MD5 y 44 el SHA-256.
Comprobar que el archivo descargado es igual al original
Algunas páginas de descarga publican el hash junto al archivo, con el aspecto «SHA-256: 3a7bd3e2…». Cambia el tipo de entrada a «Archivo», carga lo que has descargado y pega ese valor en «Comparar con un hash esperado».
- Si coincide con alguno de los algoritmos activados, la herramienta te dice con cuál («Coincide con SHA-256.») y resalta esa línea en los resultados. No hace falta que sepas de qué algoritmo es el valor que has pegado.
- Si no hay ninguno igual, sale «No coincide con ningún hash calculado.» En ese caso, vuelve a descargar el archivo.
Al comparar valores hexadecimales no importan las mayúsculas y minúsculas, el 0x inicial ni los espacios, dos puntos (:) y guiones (-) intermedios. Un valor escrito de dos en dos dígitos, como 5D:41:40:2A:..., se puede pegar tal cual. Los valores en Base64 se reconocen sea cual sea el formato de salida elegido, pero tienen que ser idénticos, mayúsculas y minúsculas incluidas.
Que el valor coincida significa que tu archivo es el mismo sobre el que el distribuidor calculó el hash. Si alguien hubiera cambiado el propio hash en la página de descarga, esta comprobación no lo detectaría.
Cuando el hash de un texto no coincide con el de otra herramienta
El texto se convierte en bytes UTF-8 antes de calcular. Hasta un carácter invisible cuenta, y cuando el resultado difiere del de otra herramienta el culpable suele ser un salto de línea.
- El SHA-256 de
helloes2cf24dba..., pero el dehelloseguido de un salto de línea es5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03. Este segundo valor es el que devuelveecho hello | sha256sumen la terminal, porque echo añade un salto de línea al final. - Tampoco tiene por qué coincidir el hash de un texto guardado con el Bloc de notas con el del mismo texto pegado aquí. Si el archivo no está en UTF-8 o usa otro tipo de salto de línea, los bytes cambian. Cuando lo que necesitas es el hash del archivo, no pegues su contenido: cárgalo como «Archivo».
Qué se hace con los archivos grandes
El archivo no se carga entero en memoria: se lee y se calcula en trozos de 16 MiB. Todos los algoritmos activados reciben el mismo trozo a la vez, así que el archivo no se lee tantas veces como algoritmos haya. Mientras dura el cálculo se ve la barra de progreso «Calculando el hash…», y si lo cancelas aparece «Cálculo cancelado.»
Los hashes se calculan con hash-wasm, una biblioteca hecha en WebAssembly.
