Calcula hashes MD5, SHA-1, SHA-256 y SHA-512 a partir de cualquier texto. Los cuatro hashes se calculan a la vez. Solo en local. La entrada nunca sale del navegador.
Genera hashes criptográficos (MD5, SHA-1, SHA-256, SHA-512) a partir de cualquier texto de entrada. Útil para comprobaciones de integridad, identificación y para aprender cómo se comportan las funciones de hash. Todo se ejecuta de forma local en tu navegador; no se sube nada.
Una función de hash criptográfica toma cualquier entrada (corta o larga, texto o binaria) y produce una salida de tamaño fijo llamada resumen (digest) o hash. Dos propiedades esenciales:
La salida de una función de hash parece aleatoria, pero no lo es: es la huella única de la entrada. Que dos entradas distintas produzcan el mismo hash se llama "colisión". En una buena función de hash, encontrar colisiones es computacionalmente inviable.
| Función | Tamaño de salida | Estado | Úsala para |
|---|---|---|---|
| MD5 | 128 bits / 32 caracteres hex | Roto (2004) | Solo claves de caché, IDs de deduplicación |
| SHA-1 | 160 bits / 40 caracteres hex | Roto (2017) | Solo compatibilidad heredada |
| SHA-256 | 256 bits / 64 caracteres hex | Seguro | Uso general, integridad, identificadores |
| SHA-512 | 512 bits / 128 caracteres hex | Seguro | Integridad a largo plazo, rápido en 64 bits |
"Roto" aquí significa que un ataque conocido reduce el costo de encontrar una colisión por debajo del mínimo de la fuerza bruta. Las funciones siguen funcionando de forma mecánica, pero no puedes confiar en su resistencia a colisiones. Así que no las uses donde esa resistencia importe.
crypto.getRandomValues() en los navegadores).El hash opera sobre bytes, no sobre caracteres. La cadena "café" produce un hash distinto si se codifica como Latin-1 (4 bytes) frente a UTF-8 (5 bytes). El generador de hash de TextKit usa UTF-8 de forma predeterminada, el estándar moderno para casi todo.
Si comparas hashes entre herramientas o sistemas y obtienes resultados distintos, lo primero que debes revisar es una discrepancia de codificación. Asegúrate de que ambos extremos codifican la entrada de la misma manera.
Si calculas el hash de "password123" con SHA-256, todo sistema que haga lo mismo obtiene la misma salida. Un atacante que roba una base de datos de hashes puede compararla con cualquier otra. La solución es la sal: anteponer un valor aleatorio a la entrada antes de hashear. La sal de cada usuario es distinta, así que contraseñas idénticas producen hashes distintos.
Pero la sal por sí sola no basta. SHA-256 es rápido: miles de millones de intentos por segundo en una GPU moderna. Hashear contraseñas requiere algoritmos diseñados para ser lentos: bcrypt (~100 ms por hash), scrypt (~ajustable), Argon2id (~ajustable, además difícil en memoria).
Esta herramienta produce hashes simples. Para almacenar contraseñas en un sistema real, usa una biblioteca dedicada: bcrypt, node-argon2, passlib o el hasheador de contraseñas integrado de tu framework.
Los cuatro hashes se ejecutan en tu navegador usando la Web Crypto API (SubtleCrypto.digest()) para SHA-1, SHA-256 y SHA-512. MD5 no forma parte de Web Crypto (a propósito: está obsoleto), así que se ejecuta mediante una implementación en JavaScript puro.
Nada sale de tu dispositivo. La función de hash se ejecuta en local, la entrada nunca toca la red y el resultado aparece de inmediato. Útil cuando la entrada es sensible (IDs internos, tokens de API, contenido cubierto por un acuerdo de confidencialidad) y no quieres pegarla en un servicio de hash del lado del servidor.
SHA-256: a1b2c3.... Pon el contenido de texto del archivo descargado (o lee sus bytes) en el generador de hash con SHA-256. ¿Coincide? La descarga está intacta.Para comprobaciones de integridad (verificar que una descarga no se dañó): SHA-256. Para almacenar contraseñas: no uses ninguna de estas directamente. Usa bcrypt, scrypt o Argon2id. Para identificadores resistentes a colisiones: SHA-256 o SHA-512. MD5 y SHA-1 están rotos y solo sirven para usos sin relación con la seguridad (claves de caché, IDs de deduplicación).
Por compatibilidad hacia atrás. Muchos sistemas existentes usan MD5 para identificación, y reemplazarlo requiere una migración. Para código nuevo, nunca uses MD5 para nada donde importe la resistencia a colisiones. Pero MD5 está bien para claves de caché, IDs de deduplicación de archivos y otros usos sin relación con la seguridad en los que el único requisito es 'la misma entrada da la misma salida'.
No, no para seguridad. La primera colisión práctica de SHA-1 se publicó en 2017 (el ataque SHAttered). Los sistemas modernos deberían usar SHA-256 o SHA-3 para cualquier hash relacionado con la seguridad.
SHA-512 produce un hash más largo (64 bytes frente a 32) y usa internamente palabras de 64 bits. En hardware de 64 bits, SHA-512 suele ser más rápido que SHA-256. SHA-512/256 es una variante que usa la canalización interna de SHA-512 pero la trunca a 256 bits. Rápida y moderna.
Casi siempre es la codificación de caracteres. La cadena 'café' produce un hash distinto si se codifica como Latin-1 frente a UTF-8 porque los bytes son distintos. El generador de hash de TextKit usa UTF-8 de forma predeterminada (el estándar moderno); otras herramientas pueden diferir.
No. Un hash criptográfico es de un solo sentido. Dado un hash, no hay forma eficiente de recuperar la entrada original. La excepción son las tablas de búsqueda precalculadas (tablas arcoíris) para entradas cortas comunes como las contraseñas. Por eso el almacenamiento de contraseñas usa bcrypt/scrypt/Argon2 con sal, no un hash simple.