Tienes un picadillo. Es una larga cadena de caracteres hexadecimales, o tal vez tenga un prefijo extraño como $2b$. Necesita saber qué algoritmo lo creó: para un desafío CTF, una auditoría de seguridad, recuperación de contraseña o simplemente por curiosidad.

Aquí tienes la guía definitiva para identificar cualquier tipo de hash por su longitud, conjunto de caracteres y formato.

¿Qué es un hash?

Un hash es una cadena de longitud fija producida por una función matemática unidireccional. Introduzca cualquier entrada (una contraseña, un archivo, un mensaje) en un algoritmo hash y obtendrá una huella digital única de un tamaño fijo. La misma entrada siempre produce la misma salida, pero no se puede revertir el proceso para recuperar la entrada original.

Las funciones hash se utilizan en todas partes: almacenar contraseñas en bases de datos, verificar la integridad de los archivos, firmas digitales y deduplicación de datos.

Cómo identificar un hash: el método rápido

La forma más rápida de identificar un hash es por su recuento de caracteres y conjunto de caracteres. La mayoría de los hashes se componen de caracteres hexadecimales (0–9, a–f), pero algunos algoritmos como bcrypt y SHA-512 crypt utilizan un alfabeto Base64 más amplio.

Paso 1: Cuenta los personajes. Paso 2: Tenga en cuenta el conjunto de caracteres (solo hexadecimales o alfanuméricos+especiales). Paso 3: Busque un prefijo (bcrypt comienza con $2b$, la cripta SHA-512 comienza con $6$).

O simplemente usa nuestro Herramienta de identificador de hash para identificarlo automáticamente.

Tabla de referencia de identificación de hash

Tipo de hash Longitud Conjunto de caracteres Prefijo / Notas
MD5 32 Hex (0-9, a-f) Sin prefijo
SHA-1 40 Maleficio Sin prefijo
SHA-224 56 Maleficio Sin prefijo
SHA-256 64 Maleficio Sin prefijo
SHA-384 96 Maleficio Sin prefijo
SHA-512 128 Maleficio Sin prefijo
SHA3-256 64 Maleficio Indistinguible de SHA-256 por longitud
SHA3-512 128 Maleficio Indistinguible de SHA-512 por su longitud
NTLM 32 Maleficio Misma longitud que MD5: el contexto importa
MySQL 4.1+ 40 Maleficio A veces tiene el prefijo *
bcrypt 60 Alfabeto base64 Comienza con $2a$, $2b$, o $2y$
Cripta SHA-512 106 Alfabeto base64 Comienza con $6$
Cripta SHA-256 63 Alfabeto base64 Comienza con $5$
Cripta MD5 34 Alfabeto base64 Comienza con $1$
Argón2 variable Base64+ $ Comienza con $argon2id$ o $argon2i$
cifrar variable Base64+ $ Comienza con $s0$
PBKDF2 variable Base64 o Hexadecimal A menudo tiene el prefijo pbkdf2_sha256$
Hash LM 32 Maleficio Herencia de Windows: dos mitades de 16 caracteres
CRC32 8 Maleficio Muy corto: 4 bytes
Bañera de hidromasaje 128 Maleficio Menos común
RIPEMD-160 40 Maleficio Misma longitud que SHA-1
Adler-32 8 Maleficio Suma de comprobación, no un hash criptográfico

Identificación de los hashes más comunes

MD5 (32 caracteres hexadecimales)

Comando
5f4dcc3b5aa765d61d8327deb882cf99

MD5 es el hash más común que encontrarás. 32 caracteres hexadecimales en minúscula, sin prefijo. Fue ampliamente utilizado para el almacenamiento de contraseñas, pero ahora se considera criptográficamente roto: es rápido de calcular, lo que hace que los ataques de fuerza bruta sean triviales.

Común en: Aplicaciones web heredadas, sumas de verificación de archivos, desafíos CTF, volcados de contraseñas de bases de datos.

Limitación: MD5 y NTLM tienen 32 caracteres hexadecimales. Si encuentra un hash de 32 caracteres de un sistema Windows, probablemente sea NTLM. Desde una aplicación web, probablemente sea MD5.

SHA-1 (40 caracteres hexadecimales)

Comando
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8

40 caracteres hexadecimales. En desuso para la mayoría de los usos de seguridad desde 2017, pero aún es común en sistemas más antiguos, confirmaciones de Git, certificados SSL (heredados) y sumas de verificación de archivos.

Común en: ID de objetos de Git, certificados SSL antiguos, herramientas de verificación de archivos.

SHA-256 (64 caracteres hexadecimales)

Comando
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

El estándar actual para la mayoría de las aplicaciones. 64 caracteres hexadecimales. Se utiliza en Bitcoin (doble SHA-256), firmas JWT, contenedores de almacenamiento de contraseñas modernos y TLS.

Común en: Blockchain, firmas API, almacenamiento de contraseñas (a menudo envueltas en PBKDF2 o HMAC), verificación de integridad de archivos.

SHA-512 (128 caracteres hexadecimales)

Comando
b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86

128 caracteres hexadecimales. Más fuerte pero más lento que SHA-256. Se utiliza en algunos hash de contraseñas de Linux (/etc/shadow) y aplicaciones de alta seguridad.

bcrypt (60 caracteres, similar a Base64)

Comando
$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW

El formato hash más reconocible debido a su prefijo estructurado:

  • $2b$ (o $2a$, $2y$) — versión del algoritmo
  • 12 — factor de costo (factor de trabajo), cuántas rondas
  • Todo lo que sigue: sal de 53 caracteres + hachís combinados

bcrypt es deliberadamente lento. No puedes acelerarlo con una GPU, por lo que es la opción correcta para el hash de contraseñas. Si ve una cadena de 60 caracteres que comienza con $2, es bcrypt.

Común en: aplicaciones PHP (password_hash()), Ruby on Rails, los frameworks web más modernos.

NTLM (32 caracteres hexadecimales)

Comando
b4b9b02e6f09a9bd760f388b67351e2b

Visualmente idéntico a MD5: 32 caracteres hexadecimales en minúscula. NTLM es el hash de autenticación heredado de Windows. Si estás haciendo CTF o realizando pentesting en sistemas Windows, estos aparecerán con frecuencia.

Cómo diferenciar MD5 de NTLM: Contexto. NTLM proviene de bases de datos SAM de Windows, Active Directory o herramientas como Mimikatz. MD5 normalmente proviene de bases de datos de aplicaciones web.

Argon2 (longitud variable, prefijo estructurado)

Comando
$argon2id$v=19$m=65536,t=3,p=4$c29tZXNhbHQ$RdescudvJCsgt3ub+b+dWRWJTmaaJObG

Ganador del concurso de hash de contraseñas de 2015. Diseñado para tener memoria dura, lo que lo hace resistente a ataques basados ​​en GPU y ASIC. Los marcos modernos (Django 4+, PHP 8.1+ nativo) están adoptando Argon2id.

Desglose de prefijos: $argon2id$ = variante, v=19 = versión, m=65536 = costo de memoria, t=3 = costo de tiempo, p=4 = paralelismo.

Cómo identificar un hachís cuando la longitud por sí sola no es suficiente

Algunos hashes tienen longitudes y conjuntos de caracteres idénticos:

Colisión Cómo distinguir
MD5 frente a NTLM (32 hexadecimales) Contexto de origen: Windows = NTLM, base de datos web = MD5
SHA-1 frente a RIPEMD-160 (40 hexadecimales) RIPEMD-160 es mucho más raro; SHA-1 es la suposición segura
SHA-256 frente a SHA3-256 (64 hexadecimales) Necesita metadatos o herramientas de algoritmo
SHA-512 vs SHA3-512 vs Whirlpool (128 hexadecimales) Necesita contexto o herramienta de identificación hash

Cuando la longitud por sí sola no puede resolverlo, es necesario:

  1. Verifique el sistema fuente (SO, marco de aplicación, base de datos)
  2. Intente descifrar un valor conocido para confirmar el algoritmo
  3. Utilice una herramienta de identificador de hash que pruebe múltiples algoritmos

Uso de una herramienta de identificador de hash

En lugar de contar caracteres manualmente, utilice nuestro Identificador hash — pega cualquier hash y:

  • Haga coincidir la longitud y el conjunto de caracteres con todos los algoritmos conocidos
  • Resalte los candidatos más probables
  • Marcar formatos con prefijo (bcrypt, SHA-crypt, Argon2) automáticamente

Esto es especialmente útil para desafíos CTF en los que encuentra formatos hash desconocidos o necesita procesar múltiples hashes rápidamente.

Escenarios del mundo real

Escenario 1: Tienes un volcado de base de datos

Encuentra una tabla de usuarios con un password columna que contiene cadenas de 60 caracteres que comienzan con Entra $2b$. Estos son hashes de bcrypt. Modernos y correctamente implementados: descifrarlos es computacionalmente costoso.

Escenario 2: Desafío CTF: encuentras un archivo hash

Comando
098f6bcd4621d373cade4e832627b4f6

32 caracteres hexadecimales → MD5. la cuerda test hashes a este valor en MD5. Un ataque rápido a una lista de palabras con hashcat o john descifrará contraseñas comunes al instante.

Comando
hashcat -m 0 -a 0 hash.txt wordlist.txt

Modo -m 0 es MD5. Si fuera SHA-1, use -m 100. SHA-256 es -m 1400.

Escenario 3: Linux /etc/shadow

Comando
$6$rounds=5000$usesomesalt$IxDD3jerizQ5s/bS3FbSsO6hMGFjfSKNBWENHyJ7FXKC4XiuT3pOlLGEBpRiuJ3QGJlyXfS4uNIaVpqEcF2b.

Comienza con $6$ → Cripta SHA-512. El formato es: $id$salt$hash donde id=6 significa SHA-512.

identificación Algoritmo
$1$ Cripta MD5
$5$ Cripta SHA-256
$6$ Cripta SHA-512
$y$ sícriptar
$2b$ bcrypt

Referencia del modo Hashcat

Si estás descifrando hashes (en sistemas que estás autorizado a probar), estos son los modos hashcat para los tipos más comunes:

Tipo de hash Modo Hashcat
MD5 0
SHA-1 100
SHA-256 1400
SHA-512 1700
NTLM 1000
bcrypt 3200
Cripta SHA-512 ($6$) 1800
MySQL 4.1+ 300
WPA/WPA2 2500

Hoja de referencia de identificación rápida

  • 8 caracteres, hexadecimal → CRC32 o Adler-32 (suma de comprobación, no criptografía)
  • 32 caracteres, hexadecimal → MD5 o NTLM
  • 40 caracteres, hexadecimal → SHA-1 o RIPEMD-160
  • 56 caracteres, hexadecimal → SHA-224
  • 64 caracteres, hexadecimal → SHA-256 o SHA3-256
  • 96 caracteres, hexadecimal → SHA-384
  • 128 caracteres, hexadecimal → SHA-512, SHA3-512 o Whirlpool
  • 60 caracteres, comienza con $2 → bcripto
  • Comienza con $1$ → Cripta MD5
  • Comienza con $5$ → Cripta SHA-256
  • Comienza con $6$ → Cripta SHA-512
  • Comienza con $argon2 → Argón2
  • Comienza con pbkdf2_ → PBKDF2

Identifica tu hash ahora

Utilice nuestro gratuito Herramienta de identificador de hash : pegue cualquier hash y obtenga una identificación instantánea con puntuaciones de confianza y algoritmos probables.

Herramientas y guías relacionadas: