Generador de hash SHA-1
Escribe o pega texto para ver su hash SHA-1 al instante, o suelta archivos para obtener sus checksums SHA-1. Cambia entre hex y Base64, añade una clave para HMAC-SHA1, reproduce un ID de blob de Git y compara con un hash esperado. Todo se ejecuta localmente en tu navegador.
Última actualización:
Cómo usar Generador de hash SHA-1
- Elige Texto o Archivos. Escribe o pega texto, o suelta uno o más archivos en el recuadro.
- Lee el SHA-1 debajo de la entrada: se actualiza mientras escribes y aparece en cuanto se procesa un archivo.
- Elige el formato: hex (40 caracteres, opcionalmente en mayúsculas) o Base64 (28 caracteres).
- Opcional: marca HMAC-SHA1 e introduce una clave para firmar un mensaje, o Hash de blob de Git para obtener el ID de objeto que Git daría al archivo.
- Pega un hash esperado en el cuadro de comparación para verificar una descarga y luego copia o descarga el resultado.
Vectores de prueba SHA-1
Valores conocidos para comprobar cualquier implementación de SHA-1 (ejemplos de FIPS 180-4 y referencias habituales). Escribe la entrada arriba sin las comillas.
| Entrada | SHA-1 |
|---|---|
| "" (cadena vacía) | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| "abc" | a9993e364706816aba3e25717850c26c9cd0d89d |
| "abc" en Base64 | qZk+NkcGgWq6PiVxeFDCbJzQ2J0= |
| "The quick brown fox jumps over the lazy dog" | 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 |
| HMAC-SHA1, clave "key", misma frase | de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9 |
| Blob de Git de un archivo vacío | e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 |
Cómo funciona SHA-1
SHA-1 rellena el mensaje con un bit 1, ceros y la longitud del mensaje en 64 bits para que ocupe bloques completos de 512 bits. Cada bloque se expande en 80 palabras de 32 bits, y 80 rondas de rotaciones, sumas y las funciones bit a bit Ch, Parity y Maj las mezclan en cinco palabras de estado de 32 bits (A a E). Tras el último bloque, las cinco palabras, escritas una tras otra, forman el hash de 160 bits.
Un ID de blob de Git es simplemente SHA-1("blob " + tamaño + "\0" + contenido). Por eso git hash-object da un valor distinto de sha1sum para el mismo archivo.
SHA-1 en la línea de comandos
| Tarea | Comando |
|---|---|
| Hash de un archivo (Linux) | sha1sum file.zip |
| Hash de un archivo (macOS) | shasum -a 1 file.zip |
| Hash de un archivo (Windows PowerShell) | Get-FileHash file.zip -Algorithm SHA1 |
| Hash de un archivo (Windows cmd) | certutil -hashfile file.zip SHA1 |
| Hash de texto sin salto de línea | printf '%s' 'abc' | sha1sum |
| ID de objeto Git de un archivo | git hash-object file.txt |
| HMAC-SHA1 con OpenSSL | printf '%s' 'message' | openssl dgst -sha1 -hmac 'key' |
Preguntas frecuentes
¿Qué es SHA-1?
SHA-1 (Secure Hash Algorithm 1) es una función hash publicada por el NIST en 1995 y especificada en FIPS 180-4. Convierte cualquier entrada en un valor de 160 bits, que normalmente se escribe como 40 caracteres hexadecimales. Por ejemplo, el SHA-1 de "abc" empieza por a9993e36 (el valor completo está en la tabla de vectores de prueba de abajo).
¿SHA-1 sigue siendo seguro?
No frente a colisiones. En 2017 el ataque SHAttered produjo dos archivos PDF diferentes con el mismo SHA-1, y más tarde los ataques de prefijo elegido abarataron aún más las colisiones. No uses SHA-1 para firmas digitales ni certificados. Sigue siendo válido como checksum para detectar corrupción accidental, por compatibilidad con sistemas antiguos y dentro de HMAC-SHA1, que no se ve afectado por estos ataques de colisión.
¿Por qué mi SHA-1 es distinto al de otra herramienta?
El hash abarca cada byte. Esta herramienta procesa el texto como UTF-8 exactamente como se escribe. Un salto de línea final (echo añade uno), los finales de línea CRLF de Windows, espacios extra o una codificación de texto distinta cambian el resultado. Usa printf '%s' en lugar de echo en la línea de comandos para evitar el salto de línea.
¿Cómo usa Git SHA-1?
Git nombra cada objeto con el SHA-1 de una cabecera más el contenido. Para un archivo (blob) es el texto "blob ", el tamaño en bytes, un byte cero y luego el contenido. Marca Hash de blob de Git para obtener el mismo valor que git hash-object. Un archivo vacío da el ID de blob que empieza por e69de29b.
¿Qué es HMAC-SHA1?
HMAC-SHA1 combina una clave secreta con SHA-1 (RFC 2104) para autenticar un mensaje. Lo usan las firmas de OAuth 1.0, muchas firmas de webhooks y los códigos TOTP de las apps de autenticación (RFC 6238). HMAC-SHA1 se sigue considerando seguro porque su seguridad no depende de la resistencia a colisiones de SHA-1.
¿Cómo obtengo un checksum SHA-1 en mi computadora?
En Linux ejecuta sha1sum archivo, en macOS ejecuta shasum archivo (SHA-1 es el predeterminado) o shasum -a 1 archivo, y en Windows PowerShell ejecuta Get-FileHash archivo -Algorithm SHA1. La herramienta del Símbolo del sistema certutil -hashfile archivo SHA1 también funciona.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.