Generador de Hash SHA-1 y Verificador de Checksum
Genere un hash SHA-1 desde texto o un archivo y verifíquelo contra un checksum SHA1SUM publicado. Veredicto coincide/no coincide, local con Web Crypto.
Generador de Hash SHA-1 - Generar Checksums SHA-1 Online
Un generador de hash SHA-1 online gratuito que crea checksums SHA-1 de 160 bits desde cualquier entrada de texto. Perfecto para desarrolladores y administradores de sistemas que necesitan hashes SHA-1 para sistemas legacy, commits Git y pruebas de desarrollo.
¿Qué es SHA-1 y cómo funciona?
SHA-1 (Secure Hash Algorithm 1) es una función hash criptográfica diseñada por la NSA y publicada por NIST en 1995 como FIPS PUB 180-1. Produce un hash de 160 bits (20 bytes), típicamente representado como cadena hexadecimal de 40 caracteres. SHA-1 procesa la entrada en bloques de 512 bits a través de 80 rondas de operaciones bit a bit, sumas modulares y rotaciones. La entrada se rellena hasta un múltiplo de 512 bits con la longitud codificada en los últimos 64 bits. La salida es determinista — la misma entrada siempre produce el mismo hash. SHA-1 se usó ampliamente en TLS, Git y firmas digitales antes de ser obsoleto para usos de seguridad.
¿Sigue siendo seguro usar SHA-1?
No — SHA-1 está roto criptográficamente para resistencia a colisiones. En febrero de 2017 Google y CWI Amsterdam publicaron 'SHAttered', el primer ataque práctico de colisión, produciendo dos archivos PDF distintos con hashes SHA-1 idénticos (artículo: shattered.io). El costo del ataque fue aproximadamente 110.000 USD en cómputo en la nube. NIST declaró formalmente obsoleto SHA-1 en 2011 (SP 800-131A) y lo prohibió para firmas digitales en 2014. Los navegadores modernos (Chrome 56+, Firefox 51+, Safari 11+) rechazan certificados TLS firmados con SHA-1. Use SHA-256, SHA-3 o BLAKE3 para cualquier aplicación criptográfica nueva. SHA-1 sigue siendo aceptable sólo para usos no de seguridad como checksums de contenido o identificadores de commit Git.
¿Por qué Git aún usa SHA-1?
Git usa SHA-1 para generar el ID de commit, el hash de árbol y el hash de blob. Linus Torvalds eligió SHA-1 en 2005 por su velocidad y unicidad adecuada para uso no adversarial. Git migra a SHA-256 — Git 2.29 (octubre 2020) añadió soporte experimental de repositorios SHA-256. Los ataques de colisión estilo SHAttered no son prácticos en Git porque crear contenido malicioso que coincida con el SHA-1 de un commit existente es mucho más difícil que producir dos archivos arbitrarios colisionantes. El proyecto Git documentó medidas de endurecimiento en 2018 para detectar ataques estilo SHAttered a nivel de protocolo. Los repositorios nuevos deben optar por `git init --object-format=sha256` para futuro, aunque la compatibilidad SHA-1 sigue siendo el predeterminado actual.
¿En qué difiere SHA-1 de MD5 y SHA-256?
MD5 produce 128 bits (32 chars hex), SHA-1 produce 160 bits (40 chars hex), SHA-256 produce 256 bits (64 chars hex). MD5 se rompió en 2004 (ataque de colisión Wang et al.); SHA-1 se rompió en 2017 (SHAttered). SHA-256 (parte de la familia SHA-2, FIPS PUB 180-4) sigue siendo seguro a 2025 sin ataques prácticos conocidos. SHA-256 es aproximadamente 50 por ciento más lento que SHA-1 en CPUs modernas pero tiene aceleración por hardware vía Intel SHA extensions y ARMv8 Crypto extensions. Para aplicaciones nuevas use SHA-256 o SHA-3; nunca use MD5 ni SHA-1 para fines criptográficos.
¿Se puede revertir SHA-1 para encontrar la entrada original?
No — SHA-1 es una función de un solo sentido por diseño. Dado un hash, no existe operación matemática para recuperar la entrada original. Sin embargo, para entradas cortas o de baja entropía (contraseñas, palabras comunes), los atacantes pueden usar tablas arcoíris (mapeos precomputados hash → entrada) o ataques de fuerza bruta/diccionario. Para una contraseña de 8 caracteres alfanuméricos minúsculos, las GPUs modernas pueden computar todos los 2,8 billones de posibles hashes SHA-1 en menos de un día. Por eso SHA-1 (y SHA-256) nunca deben usarse para almacenar contraseñas directamente — use bcrypt, Argon2id, scrypt o PBKDF2 con salado adecuado y muchas iteraciones. NIST SP 800-63B exige Argon2 o bcrypt para almacenamiento de contraseñas.

¿Cómo genero un hash SHA-1 en código?
Python: `import hashlib; hashlib.sha1(b'hola').hexdigest()` devuelve el hash. JavaScript (navegador): `await crypto.subtle.digest('SHA-1', new TextEncoder().encode('hola')).then(b => Array.from(new Uint8Array(b)).map(b => b.toString(16).padStart(2, '0')).join(''))`. Node.js: `crypto.createHash('sha1').update('hola').digest('hex')`. Bash/Unix: `echo -n 'hola' | sha1sum`. Todos producen la misma cadena hexadecimal de 40 caracteres. La distinción cadena de bytes vs cadena de texto importa: `'hola'.encode()` en Python da bytes; pasar una cadena regular puede dar TypeError. Especifique siempre la codificación de entrada (típicamente UTF-8) explícitamente para contenido no ASCII.
¿Qué es HMAC-SHA1 y dónde sigue siendo aceptable?
HMAC-SHA1 (RFC 2104) combina una clave secreta con SHA-1 para producir un código de autenticación de mensaje de 160 bits. Aunque la resistencia a colisiones de SHA-1 está rota, HMAC-SHA1 sigue siendo seguro porque HMAC depende de la propiedad de función pseudoaleatoria de la función hash subyacente, no de la resistencia a colisiones. AWS Signature Version 2 históricamente usó HMAC-SHA1 (ahora obsoleto a favor de Signature Version 4 con HMAC-SHA256). OAuth 1.0a (RFC 5849) especificó HMAC-SHA1 como método de firma. Las aplicaciones modernas deben migrar a HMAC-SHA256 (RFC 4868) o HMAC-SHA3 porque futuras debilidades en SHA-1 podrían afectar a HMAC con el tiempo y el hardware moderno acelera SHA-256 igualmente.
¿Para qué se usa el checksum SHA-1 de archivo?
Los checksums SHA-1 aún se usan ampliamente para verificar integridad de archivos en contextos no adversariales: descargas de distribuciones Linux (Debian, Ubuntu proporcionan SHA1SUMS y SHA256SUMS), manifiestos de imágenes Docker, IDs de commits GitHub, hashes de piezas BitTorrent y sistemas de almacenamiento direccionables por contenido. Detectan corrupción accidental de errores de disco o descargas parciales pero no pueden defender contra manipulación maliciosa. Prefiera siempre checksums SHA-256 cuando estén disponibles — la mayoría de distribuciones ahora publica ambos. Para verificar: `sha1sum archivo.iso` y comparar con el valor publicado. La demostración shattered.io mostró dos PDFs forjados con el mismo SHA-1 pero contenido diferente, así que confíe en SHA-1 sólo para integridad no adversarial.
¿Cómo verifico una descarga con SHA-1?
Cuando un proyecto publica un archivo SHA1SUM (o .sha1) junto a una ISO, paquete o release, usted confirma que su descarga está intacta hasheando el archivo local y comparándolo con ese valor publicado. En la línea de comandos: `sha1sum ubuntu.iso` imprime un digest hexadecimal de 40 caracteres seguido del nombre del archivo — compárelo carácter por carácter con el valor del archivo SHA1SUMS (o ejecute `sha1sum -c SHA1SUMS` para comprobarlo automáticamente). Con esta herramienta, elija el archivo en el campo 'O hashear un archivo' — se hashea localmente en su navegador mediante Web Crypto y nunca se sube — y luego pegue el checksum publicado en el campo 'Hash esperado'. Obtiene un veredicto explícito COINCIDE (suma validada) o NO COINCIDE (la suma difiere), así no tiene que cotejar 40 caracteres hexadecimales a ojo. La comparación no distingue mayúsculas y tolera pegar una línea completa de SHA1SUM (ignora el nombre del archivo final). Nota: una coincidencia SHA-1 prueba que el archivo no se corrompió accidentalmente en tránsito, pero como la resistencia a colisiones de SHA-1 está rota, prefiera el checksum SHA-256 (sha256sum) cuando el proyecto publique ambos para protegerse contra manipulación deliberada.
Características Principales
- Generar hash SHA-1 desde cualquier texto instantáneamente
- Salida de hash de 160 bits (40 caracteres)
- Formato hexadecimal en minúsculas o mayúsculas
- Hashing rápido con Web Crypto API
- Estadísticas de longitud de entrada (conteo de bytes UTF-8)
- Copiar hash al portapapeles
- Subir archivos para hashear su contenido
- Verificar archivo o texto contra un checksum SHA-1 esperado
- Soporte de modo oscuro
- Procesamiento 100% del lado del cliente
- Funciona sin conexión
- Diseño responsivo compatible con móviles
- Sin registro requerido
