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.

Deducir el algoritmo a partir del valor hash

**El valor hash no lleva escrito en ninguna parte el nombre del algoritmo que lo generó.** Aun así se puede deducir, y las pistas son tres: **el número de caracteres de la salida** (32 en MD5, 40 en SHA-1, 64 en SHA-256 y 128 en SHA-512), **el tipo de caracteres** (hexadecimal o Base64) y **prefijos como `$2b$` o `$argon2id$`**. Esta herramienta determina con esos tres elementos cuál es el algoritmo más probable, y muestra además el razonamiento que la llevó a esa conclusión.

**Conviene subrayar que se trata de una deducción y no de un veredicto.** El motivo es que varios algoritmos comparten la misma longitud de salida: una cadena de 64 caracteres hexadecimales puede ser SHA-256, pero también SHA3-256 o BLAKE2s, y por el aspecto no hay forma de separarlos. En cambio, los formatos que **incorporan sus parámetros dentro de la propia cadena**, como bcrypt y Argon2, sí se identifican con certeza gracias al prefijo. Todo el análisis ocurre dentro del navegador, de modo que la cadena que usted pega nunca se envía a ningún servidor.

Cómo identificar un hash

  1. Pegue la cadena del hash Los espacios al principio y al final se ignoran, así que puede copiarla tal cual desde un registro.
  2. Lea el resultado Los algoritmos candidatos aparecen ordenados de mayor a menor probabilidad.
  3. Revise la longitud y el juego de caracteres Se muestra también el fundamento, para que entienda **por qué se propone ese candidato**.
  4. Observe si hay prefijo Si la cadena empieza por `$`, los candidatos se reducen prácticamente a uno solo.

Consejos para aprovecharla mejor

  • 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.

Cuándo resulta útil

Al examinar un sistema heredado

Permite hacerse una primera idea de cómo se generaron los hashes que quedan en la base de datos.

Al decidir si es posible migrar

**Si son bcrypt o Argon2, puede conservarlos con sus parámetros y migrar de forma gradual** a medida que los usuarios inician sesión.

Al detectar un problema de seguridad

**Encontrar MD5 o SHA-1 guardando contraseñas es ya, en sí mismo, un hallazgo que corregir.**

Al interpretar registros o volcados

Ante una cadena hexadecimal larga de origen desconocido, sirve de punto de partida para averiguar qué es.

Términos sobre hashes

MD5
Función hash de 128 bits. **Las colisiones se construyen en la práctica, así que no debe usarse ni para contraseñas ni para detectar alteraciones.**
SHA-1
Función hash de 160 bits. Igual que MD5, tiene ataques de colisión demostrados y no se recomienda para usos nuevos.
SHA-256 / SHA-512
Funciones de la familia SHA-2. **Su rapidez, que en otros contextos es una ventaja, se vuelve una debilidad al guardar contraseñas**, porque facilita los ataques por fuerza bruta.
bcrypt
Hash pensado para contraseñas que incorpora el factor de coste en la propia cadena. Empieza por `$2a$` o `$2b$`.
Argon2
Hash de contraseñas ganador del concurso de 2015. Empieza por `$argon2id$` y permite ajustar también la cantidad de memoria.
Sal
Valor aleatorio que cambia en cada hash. **bcrypt y Argon2 la llevan incrustada dentro de la propia cadena**, por lo que no hace falta guardarla aparte.

Preguntas frecuentes

No, no solo a partir del valor hash. Algunos algoritmos, como SHA-256 y SHA3-256, producen salidas de exactamente la misma longitud, por lo que la salida por sí sola nunca puede ser concluyente. Si necesitas saberlo con certeza, tendrás que revisar el código fuente o la documentación de la aplicación que generó el hash.

BCrypt y Argon2 están diseñados específicamente para el almacenamiento de contraseñas y usan un "Modular Crypt Format" que incorpora el nombre del algoritmo y los parámetros como texto al principio del hash, como $2b$ o $argon2id$. Mientras se pueda leer esta información, el algoritmo se puede determinar de forma unívoca.

No, no puede. Esta herramienta solo estima el tipo de algoritmo a partir de la "apariencia" del valor hash; no ofrece ninguna función para recuperar los datos originales a partir de un hash, como un ataque de fuerza bruta.

La resistencia a colisiones de MD5 y SHA-1 ya ha sido vulnerada, así que si los encuentras usados para almacenar contraseñas, debes tratarlo como un riesgo de seguridad. Se recomienda migrar esos sistemas a BCrypt o Argon2id, diseñados específicamente para el almacenamiento de contraseñas.

Sí. Con la herramienta de este sitio Cálculo y comparación masiva de hashes, puedes introducir la misma cadena y calcular realmente sus valores MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt y Argon2id para contrastarlos con este resultado de identificación.
Tool-kun

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.