RevealTheme logo

Generador de Hash (MD5 / SHA)

Genera hashes criptográficos: MD5, SHA-1, SHA-256, SHA-384 y SHA-512. Se ejecuta en tu navegador mediante la Web Crypto API.

¿Qué son los hashes criptográficos y cuándo los necesitas?

Una función hash criptográfica es un algoritmo determinista que convierte cualquier entrada (unos pocos bytes, un archivo de varios gigabytes o toda la Wikipedia en inglés) en una salida de tamaño fijo llamada 'resumen' (digest) o 'hash'. SHA-256 produce 256 bits (64 caracteres hexadecimales); SHA-512 produce 512 bits; MD5 produce 128 bits. Cuatro propiedades definen un hash 'criptográfico', frente a uno no criptográfico (como CRC32): determinismo (misma entrada → mismo hash, siempre), efecto avalancha (cambiar un solo bit cambia aproximadamente la mitad de los bits de salida), resistencia a la preimagen (no puedes invertir el hash para recuperar la entrada) y resistencia a colisiones (no puedes encontrar dos entradas que produzcan el mismo hash). Cuando una función hash se rompe, suelen caer estas dos últimas propiedades: los ataques de colisión contra MD5 (2004) y SHA-1 (2017) los hicieron inadecuados para fines de seguridad, aunque siguen sirviendo para comprobaciones de integridad no adversariales, como las sumas de verificación de archivos. Usa SHA-256 o SHA-512 para cualquier trabajo de seguridad nuevo. Esta herramienta usa la Web Crypto API del navegador (crypto.subtle.digest), acelerada por hardware en los dispositivos modernos, y produce una salida idéntica byte a byte a la de OpenSSL, el módulo hashlib de Python y el módulo crypto de Node.

Casos de uso comunes

  • Verifica que un archivo descargado coincide con el SHA-256 publicado por el editor (ISOs de Linux, versiones de herramientas de seguridad).

  • Genera un identificador direccionable por contenido para claves de caché (hash del contenido → URL estable).

  • Crea una clave de deduplicación para almacenar archivos (hashes iguales = archivo idéntico).

  • Implementa la verificación de firmas de webhook: HMAC-SHA256 de la carga útil con un secreto compartido.

  • Genera hashes de contenido al estilo de Git (SHA-1 para identificadores de árbol/blob).

  • Valida la integridad de una fila de base de datos calculando el hash de las columnas clave y almacenándolo.

Preguntas frecuentes

¿Por qué MD5 está obsoleto para la seguridad?
Los criptógrafos han encontrado maneras de construir dos entradas distintas que producen el mismo MD5. Una vez que las colisiones son localizables, MD5 deja de ser una señal de integridad fiable en escenarios adversariales (alguien podría intercambiar un archivo y generar otro con el mismo hash). Para sumas de verificación no adversariales (¿se descargó el archivo correctamente?), MD5 sigue funcionando bien; solo es inseguro para firmas digitales o cualquier cosa influida por un atacante.
¿Se pueden invertir los hashes?
No directamente: los hashes criptográficos son funciones de un solo sentido. Pero: (1) para entradas cortas o de baja entropía (contraseñas, frases comunes), un atacante puede precalcular los hashes de cada entrada probable (tablas arcoíris) y buscar el tuyo. Por eso el hash de contraseñas usa sales aleatorias únicas. (2) Para entradas de longitud arbitraria y alta entropía (claves aleatorias, contenido de archivos), la inversión es computacionalmente inviable.
¿Cuál es la diferencia entre SHA-256 y HMAC-SHA256?
SHA-256 es un hash simple: cualquiera que tenga la entrada puede calcular el mismo hash. HMAC-SHA256 es un hash con clave: necesitas un secreto compartido para calcularlo. Los webhooks usan HMAC porque el verificador quiere saber '¿esto lo creó alguien que conoce el secreto?', no solo '¿coincide la carga útil con un valor conocido?'. Usa nuestro Generador de HMAC para la variante con clave.
¿Cuándo debo usar SHA-512 en lugar de SHA-256?
SHA-512 tiene más bits de salida (512 frente a 256), lo que hace los ataques de colisión teóricamente más difíciles. Pero SHA-256 ya es seguro más allá de cualquier plazo razonable (fuerza efectiva contra colisiones de 2^128). SHA-512 es a veces más rápido en hardware de 64 bits debido a sus operaciones internas más anchas. Usa SHA-256 por defecto; usa SHA-512 si tienes una razón concreta.
¿Por qué mi hash SHA difiere del de otra herramienta?
Tres causas probables: (1) Codificación de entrada distinta: los bytes a los que se aplica el hash deben coincidir. UTF-8, UTF-16 o Latin-1 producen hashes distintos para el mismo texto visible. Esta herramienta codifica la entrada como UTF-8. (2) Salto de línea final: algunas herramientas añaden un salto de línea y otras no. (3) BOM (marca de orden de bytes): un prefijo oculto de tres bytes que algunos editores añaden a los archivos UTF-8.
¿Es seguro usarla con datos sensibles?
Sí: el cálculo del hash ocurre localmente en tu navegador mediante Web Crypto. La entrada nunca sale de tu dispositivo. Los hashes en sí no son 'sensibles' en el sentido de que no revelan la entrada (suponiendo suficiente entropía), pero si calculas el hash de datos de baja entropía (como contraseñas sin sal), ten en cuenta que cualquiera que vea el hash podría llegar a invertirlo mediante tablas arcoíris.

Herramientas relacionadas