Generador de hash
Genera hashes SHA-1, SHA-256, SHA-384 o SHA-512 a partir de texto — calculados localmente usando la API Web Crypto.
Esta página se tradujo del inglés con ayuda de IA y se cotejó con el original. Leer la versión en inglés
- Gratis — No requiere registro
- Instantáneo — Los resultados se actualizan mientras escribes
- Privado — Procesado en tu navegador
Una función hash criptográfica condensa cualquier entrada en una huella de longitud fija: basta con cambiar un byte para que la huella cambie por completo, y no hay ninguna forma práctica de ejecutar la función al revés. Esta herramienta calcula los tres resúmenes de la familia SHA-2 que admiten los navegadores, además de SHA-1 por compatibilidad, usando la Web Crypto API en lugar de una reimplementación en JavaScript.
Cómo funciona
Escribe o pega un texto, elige un algoritmo y el resumen aparece en hexadecimal en minúsculas. El texto se convierte en bytes UTF-8 con TextEncoder y se pasa a crypto.subtle.digest, la implementación nativa del navegador. El hash se recalcula con cada pulsación y no se envía nada a ningún sitio.
La longitud de la salida la fija el algoritmo: SHA-1 da 40 caracteres hexadecimales (160 bits), SHA-256 da 64, SHA-384 da 96 y SHA-512 da 128. Si el sistema que va a recibir el valor espera Base64 en lugar de hexadecimal, pasa el valor hexadecimal por un conversor o calcula el resumen con una herramienta de línea de comandos que ofrezca esa salida.
Hay dos detalles que suelen despistar cuando un hash no coincide con el calculado en otro sitio. El primero: la entrada se procesa exactamente tal como se escribió, así que un salto de línea final o un espacio perdido cambian el resultado, y la mayoría de las herramientas de shell añaden un salto de línea salvo que se les indique lo contrario. El segundo: los bytes son UTF-8. Un archivo guardado en UTF-16 o en Latin-1 produce otro hash aunque se vea exactamente igual.
La Web Crypto API solo está disponible en orígenes seguros, por eso la herramienta requiere HTTPS. MD5 no está porque los navegadores no lo implementan y porque hace muchos años que no es apto para usos de seguridad.
Reproducir el resultado en otro sitio
Los mismos resúmenes en Linux y macOS, con printf en lugar de echo para que no se añada ningún salto de línea:
printf '%s' 'hello world' | sha256sum
printf '%s' 'hello world' | openssl dgst -sha512
sha256sum imprime el valor hexadecimal seguido de un guion cuando lee de la entrada estándar; openssl dgst lo precede del nombre del algoritmo. Ambos deben coincidir con la herramienta carácter por carácter.
Para qué sirve un hash
Los hashes verifican la integridad. Una página de descargas publica el SHA-256 de un instalador para que puedas confirmar que el archivo que has recibido es el que se compiló. Git identifica los commits calculando el hash de su contenido. Las cachés direccionadas por contenido usan el hash de un archivo como clave, de modo que los archivos idénticos se almacenan una sola vez. Un resumen dentro de un mensaje firmado demuestra que el cuerpo no se modificó después de firmarlo.
Un hash no es cifrado. No hay clave ni nada que descifrar; cualquiera con la misma entrada obtiene la misma salida. Publicar el SHA-256 de un secreto no lo protege si el secreto se puede adivinar, porque un atacante puede ir calculando el hash de sus intentos hasta dar con uno que coincida.
Por eso un SHA-256 a secas es la herramienta equivocada para almacenar contraseñas. El hash de contraseñas necesita una función deliberadamente lenta y con sal, como Argon2id, scrypt o bcrypt, para que probar millones de candidatas por segundo deje de ser viable. Usa este generador para comprobar sumas de verificación de archivos y depurar integraciones, no para construir un sistema de inicio de sesión.
Elegir un algoritmo
SHA-256 es la opción razonable por defecto y la que usan hoy la mayoría de los protocolos, certificados y archivos de sumas de verificación. SHA-512 es algo más rápido en hardware de 64 bits y da un resumen más largo; SHA-384 es una variante truncada que evita los problemas de extensión de longitud. Ya se han demostrado colisiones de SHA-1 en la práctica, así que solo conviene usarlo cuando un sistema antiguo lo exige, como los identificadores de objeto clásicos de Git.
Si necesitas autenticar un mensaje con un secreto compartido, y no solo obtener su huella, lo que buscas es un HMAC, que combina un hash con una clave. Es otra operación de la Web Crypto API y no se ofrece aquí.
Más información
Hash, cifrado y firma son tres primitivas distintas que a menudo se confunden; los fundamentos de la seguridad de la información explican qué garantiza cada una y dónde encaja cada una. Para ver una firma basada en hash en acción, decodifica un token con el decodificador JWT y lee proteger API REST con JWT, donde se explica cómo se generan y verifican las firmas HS256 y RS256 de esos tokens.
Preguntas frecuentes
- ¿Qué algoritmo de hash debería usar?
- SHA-256 es una buena opción general por defecto. SHA-1 se considera criptográficamente comprometido y no debería usarse con fines de seguridad, aunque a veces sigue siendo necesario por compatibilidad con sistemas antiguos.
- ¿Por qué no es compatible con MD5?
- MD5 no está disponible en la API Web Crypto integrada del navegador y también está criptográficamente comprometido — se recomienda usar SHA-256 o un algoritmo más fuerte en su lugar.
- ¿Mi texto se sube a algún sitio?
- No. El hash se genera totalmente en tu navegador usando crypto.subtle.digest.