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)
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)
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)
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)
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)
$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW
El formato hash más reconocible debido a su prefijo estructurado:
$2b$(o$2a$,$2y$) — versión del algoritmo12— 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)
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)
$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:
- Verifique el sistema fuente (SO, marco de aplicación, base de datos)
- Intente descifrar un valor conocido para confirmar el algoritmo
- 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
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.
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
$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: