ToolZen ToolZen
Developer generator client

Hash Generator

Generate MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 cryptographic hashes of any string using the Web Crypto API.

Advertisement (Top Banner)
MD5 128 bit
SHA-1 160 bit
SHA-256 256 bit
SHA-384 384 bit
SHA-512 512 bit

Hashes are computed in the browser via the Web Crypto API. No data is sent to any server.

Advertisement (Bottom)

Una función hash convierte cualquier entrada en una huella de longitud fija. La misma entrada siempre da la misma salida, y cambiar un solo bit altera el resultado por completo. Esta herramienta calcula MD5, SHA-1, SHA-256, SHA-384 y SHA-512, pero cuál de ellos debes usar depende enteramente de qué intentas demostrar.

El hash va en una sola dirección, y esa es la gracia

A diferencia de la codificación o el cifrado, el hash no tiene inversa. No hay clave que devuelva un resumen SHA-256 al archivo del que salió, porque el resumen ocupa 32 bytes tanto si la entrada era una palabra como un gigabyte: la mayor parte de la información simplemente ya no está. Cuando un sitio dice "descifrar" un hash MD5, lo que hace es buscar ese valor en una tabla de hashes precalculados de entradas comunes. Funciona con "password123" y falla con cualquier cosa impredecible.

Esa propiedad es justo lo que hace útiles los hashes para comparar. Puedes demostrar que dos archivos son idénticos, o que una descarga no se corrompió, sin manejar nunca los archivos juntos.

MD5 y SHA-1 están rotos, para ciertos usos

Ambos están rotos en un sentido concreto: la resistencia a colisiones. Una colisión son dos entradas distintas que producen el mismo resumen, y con MD5 un atacante construye una en segundos con un portátil. SHA-1 cayó en 2017, cuando unos investigadores produjeron dos PDF distintos con el mismo resumen, y en 2020 las colisiones de prefijo elegido lo hicieron atacable en la práctica. Si un hash debe demostrar que un documento es el documento que firmaste, ninguno de los dos sirve.

No son inútiles, sin embargo. Comprobar que un archivo sobrevivió intacto a una transferencia de red es una pregunta sobre corrupción accidental, no sobre un adversario malicioso, y MD5 la responde perfectamente: por eso muchas herramientas siguen emitiendo sumas de verificación MD5. La regla es simple: si a un atacante le beneficia hacer colisionar dos entradas, necesitas SHA-256. Si nadie te ataca y solo quieres detectar un bit cambiado, MD5 es rápido y suficiente.

Nunca uses esto para contraseñas

Este es el error que convierte una filtración en una catástrofe. SHA-256 está diseñado para ser rápido: el hardware moderno calcula miles de millones por segundo. Esa velocidad es una virtud para las sumas de verificación y un defecto fatal para las contraseñas, porque es exactamente lo que quiere un atacante con tu tabla de hashes filtrada. Añadir una sal frena las tablas rainbow precalculadas, pero no hace nada contra la velocidad bruta.

El hash de contraseñas necesita una función deliberadamente lenta y ávida de memoria: bcrypt, scrypt o Argon2. Tienen un parámetro de coste ajustable para encarecer cada intento, y Argon2 además exige mucha memoria para entorpecer los ataques con GPU. Si recurres a un hash para guardar una contraseña, ninguno de los algoritmos de esta página es la respuesta correcta.

Por qué MD5 funciona aquí pero no está en la API del navegador

Los algoritmos SHA de esta página pasan por la Web Crypto API integrada en el navegador. MD5 no, porque Web Crypto se niega deliberadamente a implementarlo: el organismo de estandarización decidió no poner en manos de los desarrolladores una primitiva rota. Así que aquí MD5 lo calcula JavaScript escrito a propósito.

Una consecuencia que conviene saber: Web Crypto solo está disponible en un contexto seguro. Sobre HTTP plano y en una dirección que no sea localhost, crypto.subtle es undefined y las opciones SHA simplemente no pueden funcionar, mientras MD5 sigue adelante. Si alguna vez ves una herramienta de hash donde MD5 funciona y SHA-256 no hace nada, casi seguro es por esto.

Preguntas frecuentes

¿Se envía mi entrada a un servidor?

No. Esta herramienta está marcada como "client": el resumen se calcula en la pestaña de tu navegador y la entrada nunca sale de tu máquina. Vale la pena decirlo claro porque al hash se recurre a menudo con material sensible; pero si la entrada es realmente sensible, usa una herramienta que controle tu organización en lugar de cualquier página web gratuita, esta incluida.

¿Puedo recuperar el texto original a partir de un hash?

No, y ninguna herramienta puede. Lo que hacen en realidad los sitios de "MD5 inverso" es buscar tu resumen en un diccionario de hashes precalculados. Si tu entrada era una palabra común o una contraseña filtrada, la encontrarán al instante; si era algo impredecible, no encontrarán nada. El hash en sí no contiene ningún camino de vuelta.

¿Cuál debería usar?

SHA-256, salvo que tengas un motivo concreto para no hacerlo. Es lo bastante rápido para cualquier uso interactivo, no tiene ataques prácticos y es lo que espera el resto del ecosistema. Usa MD5 solo cuando algo más lo exija —un archivo de sumas existente, una API heredada— y nunca para algo que a un atacante le convenga romper.

¿Por qué el mismo texto da un hash distinto que en mi servidor?

Casi siempre es una diferencia en qué se está pasando al hash, no en cómo. El culpable clásico es el salto de línea final: echo añade uno, así que echo "abc" | md5sum calcula el hash de cuatro bytes, no de tres. El otro es la codificación de caracteres: el mismo texto visible en UTF-8 y en UTF-16 es una secuencia de bytes distinta y por tanto un resumen distinto. Los hashes no tienen ninguna tolerancia con "casi la misma entrada".

¿Un hash más largo es más seguro?

Solo frente a la fuerza bruta, y SHA-256 ya la deja muy fuera de alcance. SHA-512 no es apreciablemente más seguro que SHA-256 para el uso corriente: en hardware de 64 bits suele ser algo más rápido, que es el motivo más habitual para elegirlo. La longitud no es el eje que importa; sí lo es si el algoritmo tiene ataques conocidos.