Generador de hash
Cómo funciona
Escribe o pega un texto y se calculan siete hashes a la vez, en tiempo real: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3 (256) y BLAKE2b. Cambia al modo Archivo para calcular el hash de cualquier archivo arrastrándolo a la zona de suelta. SHA-1, SHA-256, SHA-384 y SHA-512 usan la Web Crypto API integrada en el navegador (window.crypto.subtle.digest); MD5 usa una pequeña implementación en JavaScript puro; SHA-3 (Keccak) usa js-sha3 y BLAKE2b usa blakejs. Todo se ejecuta en local, así que no se hace ninguna petición de red.
Un hash criptográfico toma una entrada de cualquier longitud y produce una huella de longitud fija. SHA-256 devuelve siempre exactamente 256 bits (64 caracteres hexadecimales), SHA-512 devuelve 512 bits (128 caracteres hex), SHA-3-256 son 256 bits y BLAKE2b da 512 bits por defecto. Cualquier cambio de un solo bit en la entrada, cambiar un carácter o añadir un salto de línea al final, produce un hash completamente distinto. Esa propiedad es lo que hace útiles los hashes para verificar la integridad: descargas un instalador, calculas su SHA-256 y lo comparas con el valor que publica el fabricante. Si coinciden, tienes el archivo que el fabricante quería.
No todos los hashes son iguales. MD5 y SHA-1 se consideran rotos para fines de seguridad: se han demostrado colisiones prácticas (dos entradas distintas que dan el mismo hash). Siguen valiendo para comprobaciones sin adversario, donde solo te preocupa la corrupción accidental, por eso git usa SHA-1 y muchos ETag de CDN siguen usando MD5, pero no los uses para firmar datos, verificar la autenticidad de un archivo de origen no fiable ni derivar claves. SHA-256, SHA-384, SHA-512, SHA-3 y BLAKE2b no tienen ataques de colisión prácticos conocidos y son en los que se apoyan los sistemas modernos.
Los algoritmos más nuevos importan en situaciones concretas. NIST eligió SHA-3 (Keccak) en 2015 como alternativa a SHA-2, con una construcción interna totalmente distinta (esponja frente a Merkle–Damgård), de modo que una ruptura teórica de SHA-2 no rompería SHA-3 automáticamente. BLAKE2b es bastante más rápido que SHA-2 y SHA-3 en las CPU modernas, y por eso lo usan por dentro Argon2, WireGuard, Zcash e IPFS: es la elección adecuada cuando quieres seguridad posterior a SHA-2 con más velocidad.
Los hashes son de un solo sentido. No se puede invertir un hash para recuperar la entrada. Lo que hacen los atacantes es precalcular los hashes de las contraseñas habituales (tablas arcoíris) y buscar el hash en ellas. Por eso el almacenamiento real de contraseñas usa un hash lento y con salt, como bcrypt, scrypt o Argon2, y no un SHA-256 a secas.
Preguntas frecuentes
¿Qué algoritmos de hash calcula la herramienta?
- Siete, todos a la vez: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3 (salida de 256 bits, también conocido como Keccak-256) y BLAKE2b (salida de 512 bits). Pega un texto o suelta un archivo y todos los hashes se actualizan en paralelo.
¿Se suben mis datos a un servidor?
- No. Los hashes SHA-1/256/384/512 usan la Web Crypto API integrada en el navegador (crypto.subtle.digest), MD5 usa una pequeña implementación en JS puro incluida en la página, y SHA-3 y BLAKE2b usan las librerías js-sha3 y blakejs. Todo ese código se ejecuta en la pestaña de tu navegador, y la pestaña Red de las herramientas para desarrolladores confirma que no sale ninguna petición al calcular.
¿Puedo calcular el hash de archivos grandes?
- Sí. El modo Archivo lee el archivo con la File API y se lo pasa a cada algoritmo sin cargarlo en una cadena. Los archivos de hasta varios gigabytes funcionan en un portátil moderno; el límite práctico es la memoria libre del navegador y lo que estés dispuesto a esperar.
¿Por qué está MD5 si no es seguro?
- Porque MD5 sigue usándose a diario en tareas que no son de seguridad: cachés direccionadas por contenido, generación de ETag en CDN, comprobaciones básicas de integridad donde solo te preocupa la corrupción accidental e interoperabilidad con sistemas antiguos. Además es el más rápido de los siete, algo que cuenta cuando calculas hashes de muchos datos. Para cualquier cosa sensible en seguridad, usa SHA-256, SHA-512 o SHA-3.
¿Qué diferencia hay entre SHA-1, SHA-2 y SHA-3?
- SHA-1 es el Secure Hash Algorithm de primera generación (160 bits, roto desde SHAttered en 2017). SHA-2 es la familia mayoritaria actual: SHA-224, SHA-256, SHA-384 y SHA-512 son variantes de SHA-2 y siguen siendo seguras. SHA-3 es un diseño completamente distinto (la construcción de esponja Keccak) que NIST eligió en 2015 como respaldo algorítmicamente independiente por si algún día se rompe SHA-2. SHA-3 es más lento que SHA-2 en software, pero resiste los ataques de extensión de longitud que afectan a SHA-2.
¿Cuándo debería usar BLAKE2b?
- Cuando quieres seguridad moderna con mejor rendimiento que SHA-2 o SHA-3 en un hardware normal. BLAKE2b se diseñó después de SHA-3, por el mismo equipo, y busca la velocidad pura; por eso lo usan por dentro Argon2 (hash de contraseñas), WireGuard (VPN), Zcash (criptomoneda) e IPFS. Para una aplicación nueva sin requisitos de interoperabilidad, BLAKE2b suele ser la elección adecuada; para interoperar con sistemas existentes (certificados TLS, HTTPS, JWT), quédate con SHA-256.
¿Puedo usar estos hashes para contraseñas?
- No. Un SHA-256, SHA-3 o BLAKE2b a secas es demasiado rápido: una GPU puede probar miles de millones de contraseñas candidatas por segundo contra cualquiera de ellos. Guarda las contraseñas con un hash lento hecho para eso, como bcrypt, scrypt o Argon2id, siempre con un salt único por usuario.
¿Por qué el SHA-256 de una cadena vacía es e3b0c442…?
- Porque esa es la salida definida de SHA-256 para la cadena vacía. Todos los algoritmos de hash tienen una (el SHA-3-256 de la cadena vacía es a6b… y el de BLAKE2b es 786a…). Si ves estos valores de forma inesperada en producción, tu código calculó el hash de una entrada nula o vacía, casi siempre señal de que algo anterior no leía el contenido real.
Comparación de algoritmos de hash
Tamaño de la salida, estado de seguridad y usos típicos de cada algoritmo que calcula esta herramienta. Conocer la longitud esperada de la salida es útil para validar hashes de terceros.
| Algoritmo | Bits de salida | Caracteres hex | Estado | Uso típico |
|---|---|---|---|---|
| MD5 | 128 | 32 | Roto (colisiones desde 2004) | Checksums, ETag, claves de caché (nunca para seguridad) |
| SHA-1 | 160 | 40 | Roto (SHAttered, 2017) | Identificadores de objetos de Git, TLS antiguo (evítalo en sistemas nuevos) |
| SHA-256 | 256 | 64 | Seguro | Certificados TLS, Bitcoin, integridad de archivos, firmas JWT |
| SHA-384 | 384 | 96 | Seguro | TLS 1.3 AEAD, algunos estándares gubernamentales, Apple APNs |
| SHA-512 | 512 | 128 | Seguro | Óptimo en rendimiento en CPU de 64 bits; mismo nivel de seguridad que SHA-256 |
| SHA-3 (256) | 256 | 64 | Seguro | Construcción de esponja Keccak; respaldo de NIST para SHA-2, resistente a los ataques de extensión de longitud |
| BLAKE2b | 512 (por defecto) | 128 | Seguro | Más rápido que SHA-256 en CPU modernas; lo usan Argon2, WireGuard, Zcash e IPFS |
Para guardar contraseñas usa un hash lento hecho para ello (bcrypt, scrypt, Argon2id), nunca un hash criptográfico a secas de esta tabla. Para comprobar la integridad de entradas no fiables usa SHA-256, SHA-512, SHA-3 o BLAKE2b; MD5 y SHA-1 solo son seguros para comprobaciones sin adversario.