Herramienta de identificación de hash (búsqueda inversa) | Detecta automáticamente MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt, Argon2
Pega una cadena que parezca un hash y esta herramienta calcula qué algoritmo —MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt o Argon2— es más probable que lo haya generado, según su longitud, conjunto de caracteres y prefijo. Todo el proceso se realiza íntegramente en el navegador.
El propio valor hash no registra el nombre del algoritmo utilizado para generarlo. Como varios algoritmos pueden compartir la misma longitud de salida, este resultado es la "suposición más probable" basada en la longitud, el conjunto de caracteres y el prefijo, no una conclusión 100% segura.
Consejos para identificar hashes
- La identificación solo utiliza como pistas la longitud, el conjunto de caracteres (hexadecimal o Base64) y el prefijo; no vuelve a calcular el hash para verificarlo. Solo muestra los candidatos que se pueden inferir a partir del formato.
- BCrypt (
$2a$/$2b$/$2y$) y Argon2 ($argon2id$, etc.) incorporan el nombre del algoritmo y los parámetros directamente en el prefijo, por lo que se pueden identificar con alta confianza. - Una cadena hexadecimal de 64 caracteres suele ser SHA-256, pero SHA3-256 produce la misma longitud, así que si conoces el lenguaje o la librería del sistema de origen, ten en cuenta también esa información.
- Los volcados de hash copiados en varias líneas (separados por saltos de línea o espacios) se limpian automáticamente de espacios en blanco internos antes de la identificación, así que puedes pegarlos tal cual.
- Si no tienes confianza en el resultado, el método más fiable es revisar el origen del hash: el código fuente o la documentación de la aplicación.
Preguntas frecuentes
$2b$ o $argon2id$. Mientras se pueda leer esta información, el algoritmo se puede determinar de forma unívoca.
A propósito — Por qué un valor hash por sí solo no permite determinar el algoritmo
La función de una función hash es convertir los datos de entrada en una salida de longitud fija, y esa salida (el resumen o "digest") no contiene ningún metadato que indique qué algoritmo la produjo. Esto es una consecuencia inevitable de su diseño: incorporar metadatos cambiaría la longitud de la salida, rompiendo la propiedad de "longitud fija" esencial en una función hash criptográfica. Por eso lo único que nos queda como pista es la "apariencia" de la salida: su longitud y su conjunto de caracteres.
Esta limitación se manifiesta con mayor claridad en la relación entre las familias SHA-2 y SHA-3. SHA-256 y SHA3-256 tienen estructuras internas completamente distintas (SHA-2 usa una construcción Merkle–Damgård, SHA-3 usa una construcción esponja), pero ambas están diseñadas para producir una salida de 256 bits, es decir, 64 caracteres hexadecimales. La misma relación se da entre SHA-224/SHA3-224, SHA-384/SHA3-384 y SHA-512/SHA3-512, por lo que la longitud de salida por sí sola nunca permite determinar de cuál se trata. Dado que en la práctica SHA-2 es mucho más común, esta herramienta presenta la variante SHA-2 como candidato principal cuando las longitudes coinciden, aunque en última instancia se trata de una suposición estadística.
Por otro lado, algoritmos de hash de contraseñas como BCrypt y Argon2 resuelven esta ambigüedad adoptando un formato autodescriptivo conocido como Modular Crypt Format. Cadenas como $2b$12$... o $argon2id$v=19$... incorporan como texto, al principio del hash, el nombre del algoritmo, la versión y los parámetros, permitiendo reconstruir de forma unívoca cómo se calculó el valor con solo mirarlo. Cuando te encuentras con un hash de este formato, es posible una identificación definitiva.
Este tipo de trabajo de identificación surge en situaciones reales, como investigar volcados de contraseñas recuperados de sistemas heredados, o en retos de criptografía dentro de competiciones de seguridad CTF (Capture The Flag). Reducir las opciones de algoritmo a partir de un valor hash permite decidir con eficacia qué herramienta de análisis o enfoque de descifrado probar a continuación, como qué modo de ataque seleccionar en Hashcat.