Generador de hash: MD5, SHA-1, SHA-256, SHA-512 y HMAC
Calcula hashes MD5, SHA-1, SHA-256, SHA-384 y SHA-512 o HMAC de textos o archivos en tu navegador y compáralos con una suma de verificación.
El hash se calcula sobre el texto exactamente como lo introduces, con espacios y saltos de línea. Los saltos de línea de este cuadro se procesan como LF.
Suelta un archivo aquí o elige uno
No se ha seleccionado ningún archivo.
Este archivo ocupa más de 500 MB. El archivo completo se carga en memoria, por lo que el navegador puede quedarse sin memoria o volverse lento.
Resultados
Introduce un texto o elige un archivo para ver sus hashes.
Los valores hex se comparan sin distinguir mayúsculas y minúsculas; los valores Base64 deben coincidir exactamente.
Notas
- MD5 y SHA-1 tienen ataques de colisión conocidos y no deben usarse para fines de seguridad. Úsalos solo para comprobaciones no relacionadas con la seguridad, como comparar una descarga con una suma de verificación publicada.
- Un hash no es un cifrado. Esta herramienta no puede convertir un hash de nuevo en el texto o archivo original.
- No uses hashes simples para almacenar contraseñas. Usa un esquema específico de hash de contraseñas, como Argon2, scrypt o bcrypt.
- Los hashes se calculan a partir de bytes, así que el mismo texto con otros finales de línea (CRLF o LF), otra codificación de caracteres o espacios de más da un hash distinto.
- HMAC combina un hash con una clave secreta. HMAC-MD5 no está disponible aquí.
- Los textos y archivos se procesan en tu navegador y no se envían a LeedyBox. Los archivos muy grandes pueden tardar, porque el archivo completo se lee en memoria.
Cómo se usa
- En «Entrada», elige «Texto» para calcular el hash de un texto que escribas o pegues, o «Archivo» para calcular el de un archivo de tu dispositivo.
- Para un archivo, elígelo o suéltalo en el recuadro y pulsa «Calcular hashes». Si después cambias el «Modo HMAC» o la clave, vuelve a pulsar el botón.
- Elige un «Formato de salida»: hex en minúsculas, hex en mayúsculas o Base64. Cambiar el formato solo cambia cómo se escriben los mismos resultados, así que no se vuelve a calcular nada.
- Para calcular HMAC en lugar de hashes simples, marca «Modo HMAC» y escribe la clave secreta en el campo que aparece. HMAC-MD5 no está disponible, así que la fila de MD5 muestra «No disponible para HMAC».
- Para verificar una descarga, pega el valor publicado en «Suma de verificación esperada (opcional)». Se compara con todos los resultados calculados y la fila que coincide se marca con «Coincide».
Preguntas frecuentes
¿Por qué mi hash es distinto del que da sha256sum u otra herramienta?
El cuadro de texto calcula el hash de los caracteres exactamente como los escribes, así que cualquier pequeña diferencia cambia el resultado. Una causa habitual es un salto de línea final: echo hello | sha256sum calcula el hash de «hello» más un salto de línea, que da un SHA-256 distinto del de «hello» solo, mientras que printf hello | sha256sum no lo añade. Caracteres que se ven iguales también pueden estar guardados de forma distinta, por ejemplo é como un único punto de código o como e seguida de un acento combinable. Para calcular el hash de los bytes exactos de un archivo, usa «Archivo» en lugar de pegar su contenido, porque el cuadro de texto codifica el texto en UTF-8 y procesa los saltos de línea como LF.
La suma de verificación publicada es correcta, ¿por qué no coincide?
Pega solo el valor del hash. Los espacios, tabulaciones y saltos de línea se eliminan antes de comparar, así que si pegas una línea completa de un archivo de sumas de verificación, el nombre del archivo pasa a formar parte del valor, y un prefijo como sha256: también impide la coincidencia. El valor se compara con los resultados de todos los algoritmos calculados, así que no hace falta elegir uno. Si has pegado solo el valor y sigue sin coincidir, comprueba que el «Modo HMAC» esté desactivado y que la suma de verificación use MD5, SHA-1, SHA-256, SHA-384 o SHA-512; otros algoritmos, como SHA-3 o BLAKE2, no se calculan aquí. Si no es eso, lo más probable es que el archivo sea distinto del que se usó para crear la suma, por ejemplo otra versión o una descarga incompleta.
¿Qué significa que el resultado empiece por e3b0c442 o d41d8cd9?
Son los hashes de una entrada vacía (0 bytes) escritos en hex: el valor SHA-256 empieza por e3b0c442 y termina en b855, y el valor MD5 es d41d8cd98f00b204e9800998ecf8427e. Con el «Modo HMAC» desactivado, aparecen al vaciar el cuadro de texto o con un archivo de 0 bytes. Si un programa tuyo produce uno de estos valores para datos que no deberían estar vacíos, lo más probable es que haya calculado el hash de una cadena o un archivo vacíos.
¿Puedo comprobar la firma de un webhook o de una API con el modo HMAC?
A menudo, sí, si la firma es un HMAC con SHA-1, SHA-256, SHA-384 o SHA-512; HMAC-MD5 no está disponible. Marca «Modo HMAC», escribe el secreto de firma, usa el cuerpo de la solicitud como entrada y pega la firma en «Suma de verificación esperada (opcional)» sin un prefijo como sha256=; se reconocen firmas en hex y en Base64. La entrada debe tener los mismos bytes que se firmaron, así que un cuerpo JSON reformateado no coincidirá, y un cuerpo con saltos de línea CRLF debe guardarse como archivo y procesarse con «Archivo». Muchos servicios firman algo más que el cuerpo, como una marca de tiempo y un separador colocados delante de él, así que consulta en la documentación del servicio qué se firma exactamente.
Mi clave secreta viene en hex o en Base64. ¿Puedo usarla?
Solo si el servicio usa el texto de la clave tal cual. El campo «Clave secreta (UTF-8)» usa los bytes UTF-8 de los caracteres que escribes y no decodifica hex ni Base64, así que si el servicio decodifica su clave antes de firmar, el HMAC calculado aquí no coincidirá. Los espacios al principio o al final del campo también forman parte de la clave.
¿Cómo creo un hash de integridad de subrecursos (SRI)?
Elige «Archivo», selecciona el script o la hoja de estilos, comprueba que el «Modo HMAC» esté desactivado, pulsa «Calcular hashes» y pon el «Formato de salida» en «Base64». Añade sha384- delante del valor SHA-384 para obtener el valor del atributo integrity; sha256- y sha512- funcionan igual. El archivo debe tener los mismos bytes que el que descarga el navegador; si no, el navegador se niega a usarlo. Un archivo cargado desde otro origen también necesita el atributo crossorigin, y su servidor debe permitir CORS.
¿Qué diferencia hay entre la salida hex y la Base64?
Las dos representan el mismo resumen. Hex usa dos caracteres por byte, 64 caracteres para SHA-256, y es lo que muestran herramientas como sha256sum; Base64 es más corto, 44 caracteres para SHA-256. La salida Base64 usa el alfabeto estándar con + y / y relleno =, no la variante segura para URL con - y _, así que un valor en esa variante, o uno al que se le haya quitado el relleno =, puede no coincidir en la comparación.