bitlvl
ES

Generador de hashes

Escribe texto o arrastra un archivo y obtén los cinco digests a la vez. Añade una clave para HMAC. Pega un valor esperado para verificar una descarga. Todo se calcula en tu dispositivo.

O arrastra un archivo, o

Los resultados y mensajes de esta herramienta se muestran en inglés.

Qué es un hash

Un hash criptográfico convierte cualquier entrada en una huella de tamaño fijo. Cambia un bit de la entrada y toda la salida cambia; desde una salida no hay forma práctica de volver a la entrada; y (en los algoritmos que siguen siendo seguros) es inviable encontrar dos entradas con el mismo hash. Eso hace a los hashes útiles para verificar descargas, detectar cambios, deduplicar datos y, con sal y un algoritmo lento, guardar contraseñas.

AlgoritmoSalidaEstadoUso actual
MD5128 bits (32 hex)Roto: las colisiones son trivialesSumas de comprobación antiguas, claves de caché. Nunca para seguridad.
SHA-1160 bits (40 hex)Roto: colisiones demostradas (2017)IDs de objetos de Git (en sustitución). No para firmas.
SHA-256256 bits (64 hex)SeguroEl estándar: TLS, firma de código, sumas de descargas, Bitcoin.
SHA-384384 bits (96 hex)SeguroDonde se quiere más margen de seguridad; Subresource Integrity.
SHA-512512 bits (128 hex)SeguroMás rápido que SHA-256 en CPU de 64 bits; hashes de contraseña de Linux (sha512crypt).

HMAC

Un HMAC mezcla una clave secreta en el hash de una forma concreta (RFC 2104), de modo que solo quien tiene la clave puede producir o verificar el valor. Es el mecanismo detrás de los JWT HS256, las firmas de webhooks (GitHub, Stripe), la firma de peticiones de AWS y los códigos TOTP. Un simple hash(key + message) no es seguro para esto; HMAC existe para corregir la debilidad de extensión de longitud de esa construcción.

Verificar una descarga

  1. Busca la suma de comprobación publicada en la página de descarga (a menudo un archivo SHA256SUMS).
  2. Arrastra aquí el archivo descargado o ejecuta sha256sum archivo en una shell.
  3. Pega el valor publicado en el campo de comparación. Una coincidencia significa que el archivo es byte a byte lo publicado.

Un hash que coincide demuestra integridad, no autenticidad: si un atacante puede cambiar el archivo, también puede cambiar la suma de comprobación de al lado. Para autenticidad necesitas una firma (GPG, Sigstore, minisign).

Contraseñas

No guardes contraseñas como hashes SHA-256. Los hashes rápidos se pueden adivinar miles de millones de veces por segundo en una GPU. Usa una función lenta, con sal y exigente en memoria, hecha para ello: Argon2id, scrypt o bcrypt.

Preguntas

¿Qué hash debo usar?

SHA-256, salvo que haya una razón concreta para otra cosa. Es seguro, está soportado en todas partes y es rápido. SHA-512 es algo más rápido en hardware de 64 bits. MD5 y SHA-1 solo sirven para fines no de seguridad, como claves de caché.

¿Se puede descifrar un hash?

No. Un hash no es cifrado; no hay clave ni inversa. Los atacantes adivinan entradas y comparan hashes, lo que funciona con entradas cortas o comunes (de ahí las tablas arcoíris) y es la razón por la que las contraseñas necesitan sal y hashes lentos.

¿Por qué mi MD5 difiere del de la web?

Casi siempre finales de línea (CRLF frente a LF), un salto de línea al final o una codificación de texto distinta. Hashea los bytes exactos: para un archivo, usa la zona de arrastre en lugar de pegar su contenido.

¿El SHA-256 calculado aquí es el mismo que el de sha256sum?

Sí, byte a byte. La herramienta usa la implementación WebCrypto del navegador para la familia SHA. Para entrada de texto, los bytes son la codificación UTF-8 de lo escrito.

¿Se envía mi archivo o contraseña a algún sitio?

No. El hashing lo hace JavaScript localmente. La página no tiene componente de servidor que pudiera recibirlo.