Cómo generar hashes MD5, SHA-256 y otros
El hashing convierte cualquier entrada — una contraseña, un archivo, un mensaje — en una cadena de longitud fija. La misma entrada produce siempre el mismo hash, pero el más mínimo cambio en la entrada produce un hash completamente distinto. Eso hace que el hashing sea esencial para la verificación de integridad, el almacenamiento de contraseñas y las firmas digitales.
Cómo funciona el hashing
Una función hash toma una entrada de cualquier tamaño y produce una salida de tamaño fijo:
| Entrada | Hash SHA-256 (16 primeros caracteres) |
|---|---|
| hello | 2cf24dba5fb0a30e... |
| Hello | 185f8db32271fe25... |
| hello! | ce06092fb948d9ff... |
Fíjate en que un solo carácter modificado (h minúscula a H mayúscula) o añadido cambia por completo el hash. Es lo que se llama efecto avalancha.
Algoritmos de hash habituales
| Algoritmo | Longitud | Estado | Usar para |
|---|---|---|---|
| MD5 | 32 caracteres | Roto (no seguro) | Checksums heredados, usos no seguros |
| SHA-1 | 40 caracteres | Roto (no seguro) | Solo sistemas heredados |
| SHA-256 | 64 caracteres | Seguro | Integridad de archivo, firmas digitales |
| SHA-512 | 128 caracteres | Seguro | Aplicaciones de alta seguridad |
SHA-256 es el estándar actual para la mayoría de los usos. MD5 y SHA-1 solo deben usarse para interoperar con sistemas heredados que los exijan.
Cómo generar un hash
- Elige tu algoritmo — selecciona MD5, SHA-1, SHA-256, SHA-384 o SHA-512. Usa SHA-256 salvo razón específica.
- Introduce texto o importa un archivo — escribe o pega texto, o selecciona un archivo para hashear.
- Copia el hash — el resultado es una cadena hexadecimal utilizable para verificación, almacenamiento o comparación.
Usos prácticos
Verificación de integridad de archivos — descarga un archivo y compara su hash con el publicado oficialmente. Si coinciden, el archivo es auténtico y no está corrupto.
Almacenamiento de contraseñas — las aplicaciones guardan hashes de contraseñas, no las contraseñas en sí. Cuando te conectas, tu entrada se hashea y se compara con el hash almacenado.
Deduplicación de datos — hashea archivos grandes para determinar rápidamente si son idénticos sin compararlos byte a byte.
HMAC para la seguridad de API — usa HMAC (hash con una clave secreta) para firmar las peticiones de API y asegurarte de que no se han alterado en tránsito.
Consejos
- Usa SHA-256 por defecto — es seguro, ampliamente compatible y es la recomendación estándar para los proyectos nuevos.
- Nunca uses MD5 para seguridad — las colisiones MD5 (entradas distintas que producen el mismo hash) pueden generarse en segundos. Sirve para checksums no seguros, pero no para aquello en lo que importa la integridad.
- Saliniza tus hashes de contraseña — añadir una sal aleatoria a cada contraseña antes del hashing impide los ataques de tablas arcoíris. Usa bcrypt o Argon2 para el hashing de contraseñas en producción.
- El hashing de archivos funciona localmente — el archivo se procesa en tu navegador, así que incluso los archivos grandes nunca salen de tu dispositivo.
Preguntas frecuentes
¿Cuál es la diferencia entre MD5, SHA-1 y SHA-256?
MD5 produce un hash de 128 bits (32 caracteres hex), SHA-1 produce 160 bits (40 caracteres) y SHA-256 produce 256 bits (64 caracteres). MD5 y SHA-1 se consideran criptográficamente rotos. SHA-256 es actualmente seguro y se recomienda para la verificación de integridad y la seguridad.
¿Se puede invertir un hash para recuperar los datos originales?
No. Las funciones hash son de una sola dirección por diseño. No puedes invertir matemáticamente un hash hacia su entrada. En cambio, las contraseñas habituales pueden encontrarse en tablas precalculadas (rainbow tables), de ahí la importancia de salinizar las contraseñas antes del hashing.
¿Qué es HMAC?
HMAC (Hash-based Message Authentication Code) combina una función hash con una clave secreta. Verifica a la vez la integridad y la autenticidad de los datos — demostrando que no se han alterado y que los ha producido alguien que conoce la clave secreta.
¿Se envían mis datos a un servidor?
No. Todo el hashing se ejecuta en tu navegador con la API Web Crypto. Tus textos y archivos nunca salen de tu dispositivo.