Saltar al contenido
nearnull

Generador de Hash

Generá digests MD5, SHA-1, SHA-224, SHA-256, SHA-384 y SHA-512 de cualquier texto a la vez. Funciona enteramente en tu navegador: no se envía nada a ningún servidor.

Texto de entrada
Digests

Los seis digests aparecen acá mientras escribís

¿Qué es una función de hash?

Una función de hash convierte una entrada de cualquier tamaño en una huella de largo fijo. La misma entrada siempre produce el mismo digest, cambiar un solo caracter produce uno completamente distinto, y no hay forma de correr la función al revés para recuperar el texto original. Esta herramienta calcula los seis digests a la vez a partir de los bytes UTF-8 de lo que escribís, así podés comparar formatos uno al lado del otro. SHA-1, SHA-256, SHA-384 y SHA-512 los calcula la API de criptografía nativa de tu navegador; MD5 y SHA-224 se calculan en JavaScript acá, porque el estándar Web Crypto no los incluye. En cualquiera de los dos casos, nada sale de tu dispositivo.

Cómo elegir un algoritmo

MD5 (128 bits)

Roto para seguridad desde 2004: se pueden producir colisiones en una notebook en segundos. Sigue estando en todos lados como checksum sin fines de seguridad, como ETag o como clave de caché, y sigue siendo lo que publican muchos sistemas heredados y sitios con listados de archivos. Nunca lo uses para contraseñas, firmas, ni para probar que un archivo no fue alterado.

SHA-1 (160 bits)

También está roto: en 2017 se demostró una colisión práctica y los navegadores dejaron de confiar en los certificados SHA-1. Git todavía lo usa para los ids de sus objetos, y muchas APIs todavía firman con él, así que lo vas a seguir encontrando. Tratalo como a MD5: sirve como identificador, no como garantía de seguridad.

SHA-224 y SHA-256

Los miembros de 32 bits de la familia SHA-2, y el default sensato hoy. SHA-256 es lo que usan los certificados TLS, los protocolos de blockchain, los checksums de paquetes y los tokens firmados. SHA-224 es SHA-256 truncado a 224 bits, útil cuando un protocolo especifica ese largo exacto.

SHA-384 y SHA-512

Los miembros de 64 bits de SHA-2. No son solo más largos: usan un tamaño de palabra interno distinto, lo que los hace más rápidos que SHA-256 en hardware de 64 bits. SHA-384 es SHA-512 truncado, y es lo que especifican varias suites de cifrado TLS y algoritmos de JWT.

Ejemplos

El mismo digest calculado en los lenguajes que probablemente uses:

JavaScript
const buf = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(str));
const hex = [...new Uint8Array(buf)].map((b) => b.toString(16).padStart(2, "0")).join("");
Python
import hashlib

hashlib.sha256(text.encode("utf-8")).hexdigest()
Java
MessageDigest.getInstance("SHA-256")
  .digest(text.getBytes(StandardCharsets.UTF_8));
Go
import "crypto/sha256"

fmt.Printf("%x", sha256.Sum256([]byte(text)))
PHP
hash("sha256", $text);
Shell
printf "%s" "$text" | sha256sum
printf "%s" "$text" | md5sum

Casos de uso

Verificar una descarga

Pegá el checksum publicado al lado de un archivo y comparalo contra el que calculás localmente. Si difiere un solo caracter, el archivo que tenés no es el que se publicó.

Reproducir una firma o una clave de caché

Cuando una API rechaza tu request o una caché no encuentra la entrada, hashear el string exacto que creés haber mandado es la forma más rápida de descubrir si tu entrada difiere de la que esperaba el otro lado.

Deduplicar registros

Hashear una versión normalizada de un registro te da una clave corta y de largo fijo para detectar duplicados sin comparar campo por campo.

Chequear fixtures y migraciones

Muchas herramientas de migración y sistemas de configuración guardan un checksum de cada archivo para detectar ediciones posteriores. Calcular ese digest a mano te dice por qué una herramienta reporta un archivo como cambiado.

Preguntas frecuentes

¿Un hash se puede revertir o desencriptar?
No. El hashing es de una sola dirección por diseño y no es encriptación: no hay clave ni operación de desencriptado. Los sitios que dicen 'desencriptar MD5' están buscando el digest en una tabla de valores hasheados previamente, lo que solo funciona para entradas que alguien ya hasheó, como contraseñas comunes o strings cortos.
¿Qué algoritmo debería usar?
SHA-256, salvo que algo te indique otra cosa. Usá SHA-384 o SHA-512 cuando un protocolo los pida o cuando estés en hardware de 64 bits y quieras más velocidad por byte. Usá MD5 o SHA-1 solo cuando tengas que coincidir con un sistema existente, nunca para trabajo nuevo con implicancias de seguridad.
¿Puedo hashear contraseñas con esto?
No. Las funciones de hash comunes están hechas para ser rápidas, que es exactamente lo contrario de lo que querés para contraseñas: alguien con una base de datos robada puede probar miles de millones de intentos por segundo. Las contraseñas necesitan un algoritmo deliberadamente lento y con salt, como bcrypt, scrypt o Argon2. Esta herramienta es para checksums y huellas, no para guardar credenciales.
¿Por qué me da un digest distinto al de otra herramienta?
Casi siempre porque difieren los bytes de entrada, no el algoritmo. Los sospechosos habituales son un salto de línea al final (muchas herramientas de línea de comandos lo agregan, esta página no), finales de línea distintos (LF contra CRLF), espacios al principio o al final, o una codificación de texto distinta. Esta herramienta hashea exactamente los bytes UTF-8 de lo que está en la caja.
¿Qué significa 'sin resistencia a colisiones' al lado de MD5 y SHA-1?
Significa que alguien puede construir dos entradas distintas que produzcan el mismo digest. Eso rompe cualquier uso donde el hash tiene que probar qué contenido tenés, como firmas o chequeos de integridad. No significa que alguien pueda recuperar tu entrada a partir del digest, ni les quita utilidad como identificadores simples.
¿Puedo hashear un archivo acá?
Todavía no: esta herramienta hashea texto que escribís o pegás. Hashear un archivo grande de forma sincrónica congelaría la página, así que el soporte de archivos necesita lectura por chunks, que está planificado aparte. Por ahora, usá sha256sum, shasum o certutil en la línea de comandos para archivos.
¿Mi entrada se envía a algún lado?
No. Todos los digests se calculan localmente en tu navegador, sea por su API de criptografía integrada o por JavaScript corriendo en esta página. Nada de lo que escribas se transmite ni se guarda en ningún servidor.