Skip to content

Generador de Hash SHA-1 (Legado de 160 bits)

Genera hashes SHA-1 en tu navegador — salida hex de 40 caracteres, sin subidas. Herramienta para huellas Git, comprobación de certificados antiguos y auditorías de migración. Datos nunca salen de tu dispositivo.

Sin rastreo Se ejecuta en el navegador Gratis
⚠️ SHA-1 es un algoritmo obsoleto. Usa SHA-256 para trabajo nuevo. Todo el hasheo se ejecuta localmente — no se suben datos.
Algoritmo
Revisado para verificar la corrección de SHA-1 según los vectores de prueba NIST FIPS 180-1; encuadre de deprecación verificado según NIST SP 800-131A — Equipo de Ingeniería de Go Tools · May 28, 2026

¿Qué es SHA-1?

SHA-1 (Secure Hash Algorithm 1) es una función de hash criptográfica de 160 bits publicada por el NIST en 1995 como FIPS 180-1. Fue diseñada por la Agencia de Seguridad Nacional de EE. UU. para reemplazar SHA-0 (una versión anterior con fallos, retirada rápidamente en 1993) y fue el algoritmo de hash dominante para firmas digitales, certificados TLS y firma de código durante los años 2000.

Historia de las vulnerabilidades: En 2005, el equipo de Xiaoyun Wang publicó un ataque teórico que reducía la resistencia a colisiones de SHA-1 de las esperadas 2^80 operaciones a 2^63 — un quiebre teórico, pero aún no práctico. En febrero de 2017, Google y CWI Ámsterdam publicaron el ataque SHAttered, produciendo dos documentos PDF distintos con hashes SHA-1 idénticos usando aproximadamente 110 GPU-años de cómputo. Este fue el quiebre práctico definitivo. El NIST ya había deprecado SHA-1 para firmas en 2011 (NIST SP 800-131A); los fabricantes de navegadores y las Autoridades de Certificación siguieron eliminando el soporte de certificados SHA-1 en 2016-2017.

Estado actual: SHA-1 está obsoleto para todos los usos sensibles a la seguridad — firmas digitales, huellas de certificados, almacenamiento de contraseñas y firma de código. Persiste en el formato de ID de objetos de Git (hashes de commit), donde se usa para el direccionamiento por contenido en lugar de para seguridad, y en checksums de software heredado donde los administradores aún no han migrado. El proyecto Git añadió soporte para el formato de objetos SHA-256 en la versión 2.29 (octubre de 2020). Todos los proyectos nuevos deben usar SHA-256 o más fuerte.

Esta herramienta calcula SHA-1 completamente en tu navegador usando crypto.subtle.digest('SHA-1', ...) de la Web Crypto API. La salida de 40 caracteres hex es idéntica a la que producen sha1sum, openssl dgst -sha1 o git hash-object. No se envían bytes a ningún servidor.

SHA-1 vs la familia SHA-2: SHA-1 produce 40 caracteres hex (160 bits). SHA-256 produce 64 caracteres hex (256 bits) y no tiene debilidades conocidas. MD5 produce 32 caracteres hex (128 bits) y fue roto antes (2004). Para cualquier trabajo de hash nuevo, SHA-256 es la elección estándar.

// Hash text using Web Crypto API (SHA-1 — legacy use only)
async function sha1(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest('SHA-1', data);
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
}

await sha1('Hello, World!');
// → '0a0a9f2a6772942557ab5355d76af442f8f65e01'
// ⚠️ SHA-1 is broken — use SHA-256 for new work.

Ejemplos de SHA-1

Consultar una huella de commit de Git

tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author A Dev <dev@example.com> 1716854400 +0000
committer A Dev <dev@example.com> 1716854400 +0000

Initial commit

Git almacena cada commit como un blob cuyo SHA-1 se calcula a partir de la cabecera del commit más su contenido en este formato exacto. La cadena hexadecimal de 40 caracteres que muestra `git log` es directamente una huella SHA-1. Pega el texto del objeto commit sin procesar aquí para reproducir el mismo hash — útil al depurar la salida de `git cat-file` o verificar que un repositorio espejo no ha manipulado el historial. Nota: Git 2.29+ soporta el modo SHA-256 (git init --object-format=sha256). Para repositorios nuevos, prefiere el modo SHA-256.

Verificar una huella de certificado TLS legado

-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKlL...
-----END CERTIFICATE-----

Antes de 2017, los navegadores mostraban las huellas de los certificados como cadenas hex SHA-1 de 40 caracteres. Las CAs dejaron de emitir certificados firmados con SHA-1 en enero de 2016 y los principales navegadores retiraron el soporte a principios de 2017. Si auditas un certificado interno antiguo o validas un dispositivo IoT heredado, pega el cuerpo PEM aquí para reproducir la huella SHA-1 a efectos comparativos. Los flujos de trabajo modernos usan la huella SHA-256 de 64 caracteres.

Verificación de descargas de software antiguo

node-v0.12.7-linux-x64.tar.gz

Algunos archivos de software más antiguos solo publican un checksum SHA-1 junto a la descarga. Aunque esto proporciona detección básica de corrupción (no de manipulación), sigue siendo mejor que ningún checksum. Usa la pestaña Archivo para soltar el archivo, calcula el SHA-1 y compáralo con el valor publicado por el editor. Si SHA-256 también está disponible, siempre prefiere ese. Para nuevos archivos, insiste en checksums SHA-256 o SHA-512.

Demostración de colisión SHAttered

(Pega el contenido del archivo shattered-1.pdf de Google/CWI en la pestaña Archivo)

En febrero de 2017, Google y CWI Ámsterdam publicaron el ataque SHAttered — la primera colisión SHA-1 práctica. Produjeron dos archivos PDF distintos (shattered-1.pdf y shattered-2.pdf) que producen el mismo hash SHA-1: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. Soltar cualquiera de los dos PDF en la pestaña Archivo de esta herramienta produce exactamente ese hash, demostrando que la colisión es real. Esta demostración es la evidencia más clara de por qué SHA-1 está roto: dos documentos diferentes con la misma huella significa que la huella ya no es una identidad fiable. Usa SHA-256 para todos los nuevos flujos de trabajo de integridad de documentos.

Cómo generar hashes SHA-1

  1. 1

    Pega texto o suelta un archivo

    Selecciona la pestaña Texto y pega cualquier cadena — un mensaje de commit, el cuerpo de un certificado o una entrada de checksum heredado — en el área de entrada. El hash SHA-1 se actualiza mientras escribes. Para archivos, cambia a la pestaña Archivo y arrastra cualquier archivo a la zona de soltar; el navegador lo hashea localmente sin ninguna subida.

  2. 2

    Copia el hash de 40 caracteres

    Haz clic en el botón Copiar junto a la salida del hash. La cadena hexadecimal completa de 40 caracteres en minúsculas va a tu portapapeles. Usa la opción Mayúsculas si tu sistema heredado espera hexadecimal en mayúsculas — algunas herramientas antiguas y APIs de Windows usan mayúsculas por defecto.

  3. 3

    Compara contra una huella heredada

    Cambia a la pestaña Comparar y pega dos hashes SHA-1 lado a lado para confirmar que coinciden. Útil para validar un checksum de editor heredado, auditar un repositorio Git espejo, o comprobar una huella de certificado TLS antiguo de un documento anterior a la adopción de SHA-256.

Detalles técnicos

Algoritmo: construcción Merkle-Damgård, 80 rondas
SHA-1 procesa la entrada en bloques de 512 bits (64 bytes), aplicando 80 rondas de operaciones bit a bit agrupadas en cuatro etapas de 20 rondas cada una, con una función lógica diferente (Ch, Paridad, Maj, Paridad) y una constante aditiva derivada de las raíces cuadradas de enteros pequeños. El estado inicial del hash son cinco palabras de 32 bits (A-E), y el hash final es la concatenación de esas palabras tras el último bloque. Implementación definida en FIPS 180-1 (1995), reemplazado por FIPS 180-4 (2015) que incluye formalmente el lenguaje de deprecación.
Salida: 160 bits, 40 caracteres hexadecimales
Siempre exactamente 40 caracteres hexadecimales en minúsculas (160 bits = 20 bytes, codificados como 2 caracteres hex por byte). La longitud de salida es fija independientemente del tamaño de la entrada. Comparado con los 64 caracteres de SHA-256, la salida más corta proporciona menos bits de resistencia a colisiones — un factor clave por el que SHA-1 fue roto antes que SHA-256.
Rendimiento: rápido, y eso forma parte del problema
SHA-1 es rápido — típicamente 400-700 MB/s en un navegador usando Web Crypto, competitivo con SHA-256. Para un atacante, esta velocidad es una ventaja: un clúster moderno de GPUs puede calcular miles de millones de hashes SHA-1 por segundo, acelerando los ataques de fuerza bruta y la búsqueda de colisiones. La velocidad es la razón por la que SHA-1 (como MD5) nunca debe usarse para almacenamiento de contraseñas — usa bcrypt, scrypt o Argon2 en su lugar.
Estándares: FIPS 180-1 (1995) — deprecado en el contexto de FIPS 180-4
SHA-1 fue estandarizado en FIPS 180-1 (1995), reemplazando al defectuoso SHA-0. El NIST deprecó SHA-1 para firmas digitales en NIST SP 800-131A (2011) y en FIPS 186-5 (2023) lo prohibió formalmente para toda generación de firmas digitales. RFC 6194 (2011) documentó las consideraciones de seguridad conocidas. La API WebCrypto del W3C todavía incluye SHA-1 por razones de interoperabilidad con sistemas heredados, que es cómo esta herramienta de navegador puede calcularlo.

Buenas prácticas

Nunca uses SHA-1 para operaciones sensibles a la seguridad
SHA-1 está deprecado para firmas digitales, certificados TLS, firma de código, almacenamiento de contraseñas y cualquier flujo de trabajo donde importe la resistencia a colisiones. El ataque SHAttered de 2017 demostró colisiones prácticas. Para todos los usos de seguridad, migra a SHA-256 o SHA-3. La diferencia de coste es insignificante en hardware moderno — SHA-256 está acelerado por hardware en todas las CPUs actuales.
SHA-1 para consultas de huellas heredadas es aceptable
Si necesitas verificar un checksum de archivo anterior a 2017, consultar un ID de commit de Git, o inspeccionar una huella de certificado antiguo con fines de auditoría, SHA-1 es apropiado. El hash en sí no se usa para tomar una decisión de confianza — solo reproduces una huella conocida para referencia cruzada. Documenta esto explícitamente en tus registros de auditoría: 'SHA-1 usado solo como referencia heredada, no para validación de seguridad'.
Siempre hashea bytes UTF-8, no puntos de código Unicode
SHA-1, como todos los algoritmos de hash, opera sobre bytes, no sobre caracteres. La misma cadena codificada como UTF-8 frente a UTF-16 produce hashes diferentes. Esta herramienta siempre codifica la entrada como UTF-8 sin BOM antes de hashear. Si necesitas coincidir con un sistema que usa una codificación diferente (Windows UTF-16-LE, Latin-1), debes pre-codificar la entrada externamente antes de comparar hashes.
Usa comparación en tiempo constante al verificar hashes en código
Si comparas dos hashes SHA-1 en código, usa una verificación de igualdad en tiempo constante — Node.js crypto.timingSafeEqual(), Python hmac.compare_digest() — en lugar de igualdad de cadenas simple (=== o ==). La comparación simple filtra información de temporización que teóricamente puede permitir a un atacante reconstruir el hash esperado byte a byte. Esta es una medida de defensa en profundidad incluso para verificación SHA-1 heredada.

Preguntas frecuentes sobre SHA-1

¿Sigue siendo seguro usar SHA-1?
No. SHA-1 fue debilitado teóricamente en 2005 y en febrero de 2017 Google y CWI Ámsterdam demostraron la primera colisión práctica mediante el ataque SHAttered — dos archivos PDF distintos con hashes SHA-1 idénticos. El NIST deprecó SHA-1 para firmas digitales en 2011 (NIST SP 800-131A) y todos los principales navegadores y Autoridades de Certificación dejaron de aceptar certificados SHA-1 en 2017. SHA-1 está criptográficamente roto para cualquier uso sensible a la seguridad: firmas, certificados, almacenamiento de contraseñas. Para todo trabajo nuevo, cambia a SHA-256.
¿Por qué Git sigue usando SHA-1?
Git usa SHA-1 para los IDs de objetos (hashes de commit, de árbol, de blob) porque fue diseñado en 2005, cuando SHA-1 era ampliamente confiable. El uso de Git no es una firma criptográfica — es un esquema de direccionamiento por contenido para detectar corrupción accidental, no manipulación deliberada. El proyecto Git ha estado migrando desde la versión 2.29 (2020), que añadió soporte para --object-format=sha256. GitHub y las grandes forjas están desplegando gradualmente el modo SHA-256. Los repositorios existentes se pueden convertir, pero la migración es compleja. Por ahora, los IDs de commit SHA-1 siguen siendo como se almacena la mayor parte del historial Git, lo que hace útil esta herramienta para cruzar hashes de objetos de commit.
¿Debo migrar de SHA-1 a SHA-256?
Sí, para cualquier sistema sensible a la seguridad. Lista de verificación concreta: (1) Certificados TLS — si aún tienes certificados firmados con SHA-1, reemplázalos de inmediato; las CAs no emitirán nuevos de todos modos. (2) Firmas de API y HMACs — reemplaza con HMAC-SHA-256. (3) Hashes de contraseñas almacenados como SHA-1 — migra a bcrypt o Argon2. (4) Checksums de documentos o paquetes — republica con SHA-256 en lugar de SHA-1. (5) Repositorios Git — activa el modo SHA-256 para nuevos repositorios si tu cadena de herramientas lo soporta. Los checksums heredados de descargas archivadas pueden quedarse como están, ya que solo necesitan detectar corrupción accidental.
¿Qué fue el ataque SHAttered?
SHAttered (shattered.io, febrero de 2017) fue una colisión SHA-1 práctica producida por Google Security y CWI Ámsterdam. El ataque costó aproximadamente 110 GPU-años de cómputo (~110.000 USD a precios de nube de 2017) y produjo dos archivos PDF distintos que producen el mismo hash SHA-1: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. Esto destruyó el supuesto de que las colisiones SHA-1 eran solo teóricas. En 2020, el coste de una colisión SHA-1 de prefijo elegido había bajado a ~45.000 USD. Contrasta con SHA-256, para el que nunca se ha encontrado ninguna colisión.
¿Pueden ocurrir colisiones SHA-1 accidentalmente?
Encontrarse accidentalmente con una colisión SHA-1 sin esfuerzo deliberado sigue siendo astronómicamente improbable — hay 2^160 valores SHA-1 posibles, por lo que la probabilidad de colisión aleatoria es aproximadamente 1 en 10^24 para dos entradas dadas. El peligro es adversarial: un atacante determinado puede fabricar una colisión por unos 45.000 USD. La corrupción accidental del historial Git no es una amenaza realista derivada de la debilidad de SHA-1. El riesgo real está en documentos firmados digitalmente, certificados y flujos de firma de código donde un atacante podría sustituir un documento malicioso con el mismo hash que uno de confianza.
¿Es SHA-1 válido para usos no relacionados con la seguridad como checksums?
Para detectar corrupción accidental de datos — una descarga corrupta, un bit invertido en disco — SHA-1 sigue siendo técnicamente adecuado, ya que las colisiones accidentales siguen siendo esencialmente imposibles. Sin embargo, hoy hay poca razón para usar SHA-1 incluso para checksums no relacionados con la seguridad, porque SHA-256 es solo marginalmente más lento (acelerado por hardware en todas las CPUs modernas), universalmente soportado y preparado para el futuro. La única razón legítima para usar SHA-1 ahora es la interoperabilidad con un sistema heredado que solo acepta huellas hexadecimales de 40 caracteres.
¿Qué longitud tiene un hash SHA-1?
Un hash SHA-1 tiene siempre exactamente 160 bits, representados como 40 caracteres hexadecimales (2 caracteres hex por byte × 20 bytes). La longitud de salida es fija independientemente del tamaño de la entrada — hashear un solo carácter o un archivo de 10 GB produce exactamente 40 caracteres hex. Comparación: MD5 produce 32 caracteres hex (128 bits), SHA-256 produce 64 caracteres hex (256 bits) y SHA-512 produce 128 caracteres hex (512 bits). La salida más corta respecto a SHA-256 es una de las razones por las que la resistencia a colisiones de SHA-1 es menor.
¿Se envían mis datos a algún servidor?
No. SHA-1 se calcula completamente en tu navegador usando la Web Crypto API (crypto.subtle.digest('SHA-1', data)). Abre DevTools → pestaña Red mientras hasheas — verás cero peticiones salientes. Los archivos que sueltas se leen mediante la FileReader API y se hashean localmente; los bytes nunca salen de tu máquina. Esto hace que la herramienta sea segura para hashear documentos confidenciales, certificados heredados o huellas de código fuente propietario. La misma garantía de privacidad se aplica al generador SHA-256.
¿Por qué mi salida SHA-1 difiere de sha1sum en la línea de comandos?
Casi siempre es un salto de línea al final. El comando de shell echo 'hello' | sha1sum incluye un salto de línea (\n) después de 'hello', por lo que hashea 'hello\n' y no 'hello'. Usa echo -n 'hello' | sha1sum o printf '%s' 'hello' | sha1sum para eliminarlo. Otras causas comunes: terminaciones de línea Windows (\r\n vs \n), BOM UTF-8 al principio del archivo, o diferencias de codificación (UTF-8 vs Latin-1). Esta herramienta codifica la entrada como UTF-8 sin BOM antes de hashear.

Herramientas relacionadas

Ver todas las herramientas →

Decodificador JWT

Herramientas de Seguridad

Decodifica tokens JWT online con nuestro decodificador JWT gratis. Inspecciona encabezado, carga útil, firma, expiración y reclamaciones al instante. 100% navegador — tu token nunca sale del dispositivo. Sin registro ni rastreo.

Generador de Hash MD5 Online y Verificador de Checksum

Herramientas de Seguridad

Genera hashes MD5, SHA-256, SHA-1 y SHA-512 gratis — 100% en tu navegador, sin registro. Hashea texto o archivos, verifica checksums y compara hashes con un clic. Tus datos permanecen privados.

Generador de Contraseñas Aleatorias y Seguras

Herramientas de Seguridad

Genera contraseñas seguras al instante — gratis, sin registro, 100% en tu navegador. Personaliza la longitud y los tipos de caracteres, genera hasta 50 contraseñas. Medidor de fortaleza con análisis de entropía.

Generador de Hash SHA-256 y Verificador de Checksum

Herramientas de Seguridad

Genera hashes SHA-256 online gratis. Hashea texto o archivos en tu navegador, verifica checksums y copia la salida hex de 64 caracteres. Sin registro; los datos nunca salen de la página.

Generador de Hash SHA-3 (Keccak SHA3-256)

Herramientas de Seguridad

Genera hashes SHA-3 online gratis. Construcción de esponja NIST FIPS 202 — el estándar posterior a SHA-2. Salida SHA3-256 en 64 caracteres hex. Solo en navegador vía js-sha3; sin subidas.

Generador de Hash SHA-384 (Hash Suite B para TLS)

Herramientas de Seguridad

Genera hashes SHA-384 online — salida hex de 96 caracteres, inmune a extensión de longitud, compatible con NSA Suite B. Usado con AES-256-GCM en TLS. Todo el hasheo se ejecuta en tu navegador.