Generador de hash (MD5, SHA-1/256/384/512)
Calcula hashes MD5, SHA-1, SHA-256, SHA-384 y SHA-512 de texto o archivos. Salida en hex o Base64. Solo en el navegador.
Generador de hash
———MD5 y SHA-1 están rotos criptográficamente: sirven para sumas de verificación sin implicaciones de seguridad, nunca para contraseñas ni firmas. Usa SHA-256 o superior para todo lo relacionado con seguridad.
Se ejecuta completamente en tu navegador. Tus datos nunca salen de tu dispositivo.
What next?
How it works
Qué hace realmente el hash
Una función hash toma cualquier entrada y produce una salida de tamaño fijo. La salida parece aleatoria pero es completamente determinista — la misma entrada siempre produce el mismo hash. Los buenos hashes tienen tres propiedades: resistencia preimagen (dado un hash, no puede revertirlo a la entrada), resistencia colisión (no puede encontrar dos entradas que produzcan el mismo hash), y avalancha (un bit cambiado en la entrada voltea ~la mitad de los bits en la salida).
Lo que el hash no es: cifrado. No hay clave. No hay "descifrando" un hash. Si alguien le dice que está "cifrando contraseñas con SHA-256", está utilizando mal ambos términos y probablemente también su sistema de autenticación.
Los cinco algoritmos en esta herramienta
| Algoritmo | Tamaño de salida | ¿Seguro para la seguridad en 2026? | Usar para |
|---|---|---|---|
| MD5 | 128 bits | No | Checksums no relacionados con seguridad (deduplicación de archivos, claves de caché) |
| SHA-1 | 160 bits | No | Solo compatibilidad heredada |
| SHA-256 | 256 bits | Sí | Predeterminado para código nuevo |
| SHA-384 | 384 bits | Sí | Regímenes de cumplimiento que lo exigen |
| SHA-512 | 512 bits | Sí | Cuando necesita más tamaño de salida (raro) |
MD5 y SHA-1 están rotos para usos criptográficos porque los ataques de colisión contra ellos son prácticos. No están rotos para usos no relacionados con seguridad como detectar corrupción accidental de archivos o generar claves de caché, donde un atacante no intenta activamente construir colisiones.
El error: hashear contraseñas con SHA-256
Todo desarrollador de backend ha hecho esto una vez y ha aprendido a no hacerlo:
// NO HAGAS ESTO
const hashed = sha256(password);
SHA-256 es rápido — una GPU moderna puede calcular miles de millones por segundo. Eso es exactamente lo que no quiere para el almacenamiento de contraseñas, porque un atacante que roba su base de datos puede hacer fuerza bruta a los hashes a la misma velocidad.
Use funciones de hash de contraseña diseñadas para ser lentas:
- bcrypt — estándar antiguo, bien entendido, está bien para la mayoría de los casos
- scrypt — resistente a la memoria, más difícil de atacar con GPU que bcrypt
- Argon2id — estado actual del arte, ganador de la Competencia de Hash de Contraseña
Estos toman ~100ms para calcular, lo que es invisible para un usuario que inicia sesión pero catastrófico para un atacante que intenta miles de millones de intentos. Use una biblioteca: argon2 (Node), bcrypt (Python/Go/etc.), o la incorporada de su framework. Nunca llame a SHA-256 en una contraseña.
HMAC — hash con clave
HMAC ("Hash-based Message Authentication Code") combina un hash con una clave secreta. El verificador necesita la misma clave para confirmar la firma. Usos comunes:
- Firmas de webhook (Stripe, GitHub, etc. usan HMAC-SHA-256)
- Firma de solicitudes API (derivados de AWS SigV4)
- JWT HS256 (esto es solo HMAC-SHA-256 sobre header+payload)
Para HMAC, el algoritmo importa menos que la longitud y secreto de la clave. HMAC-SHA-256 con una clave aleatoria de 32 bytes está sin romper; HMAC-MD5 con una clave de 16 bytes sigue sin romperse (el ataque de colisión de MD5 no se traduce a HMAC). Aun así, use SHA-256 o superior para código nuevo.
Hash de archivos
Esta herramienta lee archivos en memoria y los hashea — está bien para archivos de hasta unos pocos cientos de MB en una máquina típica. Para archivos de varios GB, use un CLI de transmisión como shasum -a 256 file.bin (macOS/Linux) o Get-FileHash (PowerShell). La transmisión evita cargar el archivo completo a la vez.
Los hashes producidos aquí coinciden con lo que su herramienta CLI le dará. Útil para verificar descargas — encuentre el hash publicado del editor, luego calcule el mismo algoritmo aquí y compare.
Salida hex versus Base64
El mismo hash, visualización diferente. Hex es universal pero detallado (SHA-256 = 64 caracteres). Base64 es más corto (SHA-256 = 44 caracteres) y aparece en cosas como atributos de Subresource Integrity. Cambie el interruptor anterior.
Privacidad
Todo el cálculo ocurre en su navegador. Familia SHA a través de la API WebCrypto nativa (crypto.subtle.digest), MD5 a través de la biblioteca de código abierto js-md5. Nunca se hace una solicitud a nuestro servidor.
Herramientas relacionadas
- Generador de contraseñas — genere una cadena aleatoria fuerte (que luego hashea con bcrypt/argon2, nunca SHA sin procesar).
- Generador de UUID — cuando necesita un ID único, no un hash.
FAQ
¿Debería hashear contraseñas con SHA-256?
No. SHA-256 es demasiado rápido — un atacante con una base de datos robada puede hacer fuerza bruta a miles de millones de intentos de contraseña por segundo. Use una función de hash de contraseña lenta (Argon2id, bcrypt, scrypt) a través de una biblioteca. SHA-256 es para integridad de datos, no para almacenamiento de contraseñas.
¿MD5 es seguro?
Para la integridad de datos contra la corrupción accidental: está bien. Para cualquier cosa donde un atacante pueda construir colisiones (firmas, certificados, usos criptográficos): está roto desde 2004. No use para nuevo código de seguridad.
¿Cuál es la diferencia entre SHA-256 y SHA-3?
Ambos son modernos y seguros. SHA-256 es parte de la familia SHA-2, ampliamente implementada desde 2001. SHA-3 (Keccak) fue estandarizado posteriormente como respaldo con una construcción fundamentalmente diferente. SHA-256 es el predeterminado práctico; SHA-3 está bien cuando se requiere específicamente.
¿Por qué la misma entrada = el mismo hash?
Esa es la definición de una función hash — determinista. Si desea diferentes salidas para la misma entrada, desea HMAC (agregar una clave secreta) o simplemente agregar una sal aleatoria antes de hashear.
¿Qué hay sobre las colisiones de hash?
Para SHA-256, la probabilidad de encontrar dos entradas que colisionen es tan baja (1 en 2^128 para un ataque de cumpleaños) que nunca se ha observado. Para MD5, las colisiones se pueden construir en minutos en una computadora portátil. Las colisiones de SHA-1 cuestan aproximadamente $110k de tiempo de GPU a partir de 2017.
¿HMAC versus hash simple?
Hash simple: cualquiera puede calcularlo a partir de la misma entrada. HMAC: requiere una clave secreta compartida, por lo que también autentica que el mensaje proviene de alguien con la clave. Use HMAC para firmas de webhook, firma de solicitudes API y JWT HS256.
¿El hash de archivos funciona en archivos grandes?
Cómodamente hasta unos pocos cientos de MB. Más allá de eso, el navegador carga el archivo completo en memoria, lo que se vuelve lento. Para archivos de varios GB, prefiera un CLI de transmisión: shasum -a 256 (Unix) o Get-FileHash (PowerShell).
¿Para qué sirve la pestaña HMAC?
Un hash simple prueba que un mensaje no ha cambiado. No prueba quién lo produjo — cualquiera puede hashear cualquier cosa. HMAC agrega una clave secreta compartida, por lo que un resumen coincidente también prueba que el remitente tenía esa clave. Es por eso que los proveedores de webhook firman sus cargas útiles con ella: Stripe, GitHub y Shopify envían todos un encabezado HMAC-SHA-256 que recalcula sobre el cuerpo de la solicitud sin procesar para confirmar que la solicitud realmente proviene de ellos.
Pegue el mensaje y la clave, y el resumen aparece para cada algoritmo que haya seleccionado. Ambos permanecen en su navegador — el cálculo usa WebCrypto localmente, y nada se transmite.
¿Por qué MD5 no aparece en la pestaña HMAC?
WebCrypto no ofrece HMAC-MD5, y sería la opción incorrecta incluso si lo hiciera. HMAC-MD5 no está roto de la manera en que está MD5 simple, pero no hay razón para comenzar una nueva integración con él. SHA-256 es el predeterminado moderno y lo que usan todos los principales proveedores.
¿Por qué mi HMAC no coincide con lo que calculó el servidor?
Casi siempre uno de tres cosas. Primero, los bytes exactos: HMAC se calcula sobre el cuerpo de la solicitud sin procesar, por lo que una carga JSON que ha sido analizada y re-serializada — incluso con campos idénticos — produce un resumen diferente. Segundo, la codificación: algunos proveedores comparan hex, otros base64, y el mismo resumen se ve completamente diferente en cada uno. Tercero, espacios en blanco al final o una nueva línea que su editor agregó a la clave.
Verifique el cuerpo sin procesar primero; es la causa mucho más a menudo que los otros dos combinados.
More generators tools
- Generador de Meta Tags — Generate title, description, Open Graph and Twitter card tags, with warnings for the mistakes that break social previews.
- Generador de Códigos de Barras — Crea un código EAN-13, EAN-8, UPC-A, ITF-14, Code 128, Code 39, Data Matrix, PDF417 o Aztec.
- Generador de UUID — Genera UUID v4, v7 y v1 en el navegador.
- Generador de contraseñas — Genera contraseñas seguras con aleatoriedad criptográfica.
- Generador de datos de prueba — Genera datos ficticios realistas (usuarios, emails, direcciones, fechas) en JSON, CSV o SQL.
- Generador de Código QR — Genera códigos QR para texto, URLs, vCard, Wi-Fi o email — descarga PNG y SVG, niveles de corrección de errores, personalización de color.