Qué es una función hash
Una función hash criptográfica toma una entrada de cualquier tamaño (una palabra, un documento, una imagen de disco de varios gigas) y produce un resultado de longitud fija, llamado resumen, digest o simplemente hash. SHA-256, por ejemplo, siempre devuelve 256 bits, que se escriben como 64 dígitos hexadecimales. Para que sea útil en seguridad, la función tiene que cumplir cuatro propiedades:
- Determinista: la misma entrada produce siempre el mismo hash, en cualquier equipo y en cualquier lenguaje.
- Efecto avalancha: un cambio mínimo en la entrada cambia el resultado por completo.
Hola, mundoyHola, mundo.(con un punto final) dan hashes SHA-256 sin ninguna relación visible entre sí. - Unidireccional: a partir del hash no hay forma práctica de reconstruir la entrada; solo se puede probar entradas hasta dar con una que coincida.
- Resistente a colisiones: tiene que ser inviable encontrar dos entradas distintas con el mismo hash.
Esa última propiedad es la que separa a los algoritmos actuales de los obsoletos.
Los algoritmos y su estado
| Algoritmo | Tamaño | Dígitos hex | Estado |
|---|---|---|---|
| MD5 | 128 bits | 32 | Roto: colisiones prácticas desde 2004 |
| SHA-1 | 160 bits | 40 | Roto: primera colisión pública en 2017 (SHAttered) |
| SHA-256 | 256 bits | 64 | Seguro; el estándar de facto actual |
| SHA-384 | 384 bits | 96 | Seguro; variante truncada de SHA-512 |
| SHA-512 | 512 bits | 128 | Seguro; suele ser más rápido que SHA-256 en CPU de 64 bits |
"Roto" significa que se pueden fabricar dos entradas distintas con el mismo hash. MD5 y SHA-1 siguen sirviendo para detectar errores accidentales (una descarga corrupta, un archivo duplicado), pero no para nada en lo que un atacante pueda elegir el contenido: firmas digitales, certificados o verificación de software frente a manipulación. La herramienta los marca como inseguros por esa razón. La historia de esas roturas y qué usar en cada caso están en la guía MD5, SHA-256 y bcrypt: qué función hash usar para cada cosa.
Cómo usar la herramienta
- Texto: el texto se convierte a bytes con UTF-8 antes de calcular el hash, igual que hacen
sha256sum, Python o Node.js. Por esoñda el mismo resultado aquí que en cualquier otro sistema moderno. - Archivo: elige un archivo del equipo y se calculan los cinco hashes. El archivo se lee completo en la memoria del navegador, nunca se sube a un servidor, y el cálculo funciona sin conexión una vez cargada la página.
- Hash esperado: pega el checksum que publica el sitio de descarga y la herramienta indica con qué algoritmo coincide. Acepta mayúsculas, el prefijo
sha256:y la línea completa de un archivoSHA256SUMS(hash seguido del nombre de archivo). - Clave HMAC: si se escribe una clave, en lugar del hash simple se calcula un HMAC (RFC 2104), que combina la clave con el contenido. Es lo que usan los webhooks y muchas APIs para firmar mensajes. HMAC-MD5 no está disponible porque la API criptográfica de los navegadores no lo soporta.
Verificar una descarga, paso a paso
- En la página de descarga, copia el hash SHA-256 publicado para el archivo (a veces en un archivo aparte llamado
SHA256SUMSo.sha256). - Elige el archivo descargado en la herramienta y pega el hash en "Hash esperado".
- Si coincide, el archivo es idéntico bit a bit al que publicó el sitio. Si no coincide, la descarga está corrupta o el archivo no es el mismo, y no conviene usarlo.
Un detalle importante: el checksum solo protege tanto como el canal por el que se obtuvo. Si el atacante controla el servidor de descargas, puede cambiar el archivo y el checksum a la vez. Por eso los proyectos serios firman además el archivo de checksums con GPG o publican el hash por un canal distinto.
El mismo cálculo desde la terminal:
| Sistema | Comando |
|---|---|
| Linux | sha256sum archivo.iso |
| macOS | shasum -a 256 archivo.iso |
| Windows (cmd) | certutil -hashfile archivo.iso SHA256 |
| Windows (PowerShell) | Get-FileHash archivo.iso -Algorithm SHA256 |
Para qué no sirve un hash rápido
MD5, SHA-1 y la familia SHA-2 están diseñados para ser rápidos: una GPU moderna calcula decenas de miles de millones de hashes SHA-256 por segundo. Esa velocidad es una virtud al verificar archivos y un defecto grave al guardar contraseñas. Si una base de datos guarda SHA-256(contraseña) y se filtra, un atacante puede probar diccionarios enteros en minutos. Las contraseñas se guardan con funciones lentas, con sal y costo configurable, como Argon2id, scrypt o bcrypt. La guía de hashes explica por qué, y la de Cómo crear contraseñas seguras: la entropía explicada cubre el otro lado del problema: cuánta entropía necesita la contraseña.
Privacidad
Los hashes se calculan en el navegador con la Web Crypto API (SHA) y con una implementación propia del RFC 1321 (MD5), verificada con los vectores de prueba oficiales. Ni el texto, ni los archivos, ni la clave HMAC salen del equipo.