La identificación de hash es el proceso de determinar qué algoritmo criptográfico produjo un digest específico. Las funciones hash como MD5, SHA-1 y SHA-256 producen salidas de longitud fija, y la longitud de la salida es la señal principal para identificar un hash desconocido. Cuando encuentras una cadena hexadecimal en un volcado de base de datos, archivo de configuración o respuesta de API, una herramienta identificadora te indica qué algoritmo probablemente lo generó.
Cada algoritmo hash mapea datos de entrada arbitrarios a una salida de tamaño fijo llamada digest. MD5 siempre produce 128 bits (32 caracteres hex), SHA-1 siempre produce 160 bits (40 caracteres hex) y SHA-256 siempre produce 256 bits (64 caracteres hex). Esta longitud de salida determinista es lo que hace posible la identificación algorítmica sin acceso a los datos de entrada originales o al código hash.
La identificación solo por longitud no siempre es definitiva. Varios algoritmos comparten el mismo tamaño de salida — por ejemplo, SHA-256 y SHA3-256 ambos producen digests hexadecimales de 64 caracteres. En estos casos, un identificador proporciona una lista de algoritmos candidatos clasificados por prevalencia. Las pistas contextuales como el sistema fuente, formato de codificación (hex vs. Base64) y la presencia de prefijos de algoritmo (como '$2b$' para bcrypt) reducen aún más las posibilidades.
¿Por qué Usar un Identificador de Hash?
Los hashes desconocidos aparecen regularmente durante auditorías de seguridad, migraciones de bases de datos y análisis forense. Un identificador de hash elimina la adivinanza y te señala el algoritmo correcto en segundos.
⚡
Detección Instantánea
Pega un hash y obtén algoritmos candidatos inmediatamente. Sin necesidad de contar caracteres manualmente ni consultar tablas de referencia — la herramienta mapea longitud hex a todos los algoritmos coincidentes automáticamente.
🔒
Análisis Respetando Privacidad
Toda la identificación se ejecuta completamente en tu navegador usando JavaScript. El hash nunca abandona tu dispositivo, lo que importa cuando analizas hashes de contraseña, tokens de autenticación o evidencia forense sensible.
📋
Cobertura Completa de Algoritmos
Detecta MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 y sus contrapartes SHA-3. La tabla de referencia cubre las familias SHA-2 y SHA-3 completas más alternativas comunes como RIPEMD-160 y BLAKE2.
🚫
Sin Cuenta ni Instalación
Funciona instantáneamente en cualquier navegador moderno. Sin registro, sin clave API, sin herramienta CLI que instalar. Guárdalo como favorito y úsalo siempre que encuentres un hash desconocido — en cualquier SO, cualquier dispositivo.
Casos de Uso del Identificador de Hash
Auditoría de Seguridad
Durante pruebas de penetración, identificar algoritmos de contraseña en bases de datos filtradas determina el enfoque de cracking. Los hashes MD5 y SHA-1 indican protección débil y pueden priorizarse para remediación.
Migración de Base de Datos
Al migrar registros de usuarios entre sistemas, el algoritmo de contraseña debe ser conocido para configurar correctamente la nueva capa de autenticación. Identificar mal el algoritmo causa que todos los logins fallen.
DevOps y CI/CD
Los pipelines de compilación a menudo incluyen sumas de verificación para verificación de artefactos. Identificar si una suma es SHA-256 o SHA-512 asegura que uses el comando de verificación correcto en tus scripts de despliegue.
Forensia Digital
Los examinadores forenses encuentran digests hash en registros de integridad de archivos, registros blockchain y metadatos de evidencia. Identificar el algoritmo es un requisito previo para verificar la cadena de custodia de la evidencia.
Integración de API
Las APIs de terceros a veces devuelven valores hash sin documentar el algoritmo. Identificar el tipo desde la respuesta te permite configurar correctamente tu verificación de firma webhook o validación de suma de verificación.
Aprendiendo Criptografía
Los estudiantes que trabajan en cursos de criptografía pueden pegar hashes generados por diferentes algoritmos e inmediatamente ver la relación entre la elección de algoritmo, longitud de salida y propiedades de seguridad.
Tabla de Referencia de Longitud de Algoritmo Hash
La tabla siguiente mapea cada algoritmo hash común a su tamaño de salida en bits, caracteres hex y bytes sin procesar. Esta es la tabla de búsqueda principal utilizada por herramientas de identificación. Cuando múltiples algoritmos comparten la misma longitud hex, necesitas contexto adicional para distinguirlos.
Algoritmo
Bits
Caracteres Hex
Bytes
Notas
MD5
128
32
16
Broken — collisions trivial since 2004
SHA-1
160
40
20
Deprecated — SHAttered attack (2017)
SHA-224
224
56
28
Truncated SHA-256; rarely used standalone
SHA-256
256
64
32
Current standard; TLS, Git, Bitcoin
SHA-384
384
96
48
Truncated SHA-512; CNSA Suite approved
SHA-512
512
128
64
Maximum SHA-2 output; large-data hashing
SHA3-256
256
64
32
Keccak-based; NIST alternative to SHA-2
SHA3-512
512
128
64
Keccak-based; highest SHA-3 strength
RIPEMD-160
160
40
20
Used in Bitcoin address derivation
BLAKE2s
256
64
32
Faster than SHA-256; 256-bit output
Desambiguación de Longitudes Hash
Algunas longitudes hex coinciden con múltiples algoritmos. Las dos ambigüedades más comunes son hashes de 64 caracteres (SHA-256 vs. SHA3-256) y hashes de 40 caracteres (SHA-1 vs. RIPEMD-160). Aquí está cómo distinguirlos cuando la longitud sola es insuficiente.
64 caracteres hex: SHA-256 vs. SHA3-256
Ambos producen digests de 256 bits (64 caracteres). SHA-256 es abrumadoramente más común en la práctica — commits de Git, certificados TLS, bloques Bitcoin y la mayoría de firmas API usan SHA-256. SHA3-256 típicamente solo se encuentra en sistemas que explícitamente requieren conformidad con NIST SP 800-185 o construcciones basadas en Keccak. Revisa la documentación del sistema fuente para confirmar.
40 caracteres hex: SHA-1 vs. RIPEMD-160
SHA-1 es el hash de 160 bits mucho más prevalente — usado históricamente en Git (antes de transición a SHA-256), TLS y code signing. RIPEMD-160 aparece principalmente en generación de direcciones Bitcoin (HASH160 = SHA-256 seguido de RIPEMD-160). Si el hash proviene de un contexto de criptomoneda, considera RIPEMD-160; de lo contrario, SHA-1 es el candidato probable.
Ejemplos de Código
A continuación hay implementaciones de trabajo de identificación de hash por longitud hex en cuatro lenguajes. Cada función valida codificación hex, busca la cantidad de caracteres y devuelve todos los algoritmos coincidentes.
package main
import (
"fmt"
"regexp"
)
var hexPattern = regexp.MustCompile("^[0-9a-fA-F]+$")
var hashLengths = map[int][]string{
32: {"MD5"},
40: {"SHA-1", "RIPEMD-160"},
56: {"SHA-224", "SHA3-224"},
64: {"SHA-256", "SHA3-256", "BLAKE2s"},
96: {"SHA-384", "SHA3-384"},
128: {"SHA-512", "SHA3-512", "BLAKE2b"},
}
func identifyHash(hex string) []string {
if !hexPattern.MatchString(hex) {
return []string{"Not a hex-encoded hash"}
}
if algos, ok := hashLengths[len(hex)]; ok {
return algos
}
return []string{fmt.Sprintf("Unknown (%d hex chars)", len(hex))}
}
func main() {
fmt.Println(identifyHash("d41d8cd98f00b204e9800998ecf8427e"))
// → [MD5]
}
CLI (Bash)
#!/bin/bash
# Identify a hash from the command line by character count
hash="$1"
if [[ ! "$hash" =~ ^[0-9a-fA-F]+$ ]]; then
echo "Not a hex-encoded hash"
exit 1
fi
len=${#hash}
case $len in
32) echo "MD5 (128-bit)" ;;
40) echo "SHA-1 or RIPEMD-160 (160-bit)" ;;
56) echo "SHA-224 or SHA3-224 (224-bit)" ;;
64) echo "SHA-256 or SHA3-256 (256-bit)" ;;
96) echo "SHA-384 or SHA3-384 (384-bit)" ;;
128) echo "SHA-512 or SHA3-512 (512-bit)" ;;
*) echo "Unknown hash length: $len chars" ;;
esac
# Usage: ./identify.sh d41d8cd98f00b204e9800998ecf8427e
# → MD5 (128-bit)
Preguntas Frecuentes
¿Cómo funciona la identificación de hash?
La identificación de hash se basa principalmente en la longitud del digest codificado en hex. Cada algoritmo produce un número fijo de bits de salida: MD5 produce 128 bits (32 caracteres hex), SHA-1 produce 160 bits (40 caracteres hex), SHA-256 produce 256 bits (64 caracteres hex) y así sucesivamente. El identificador mide la longitud de la cadena, verifica que contenga solo caracteres hexadecimales y la mapea a tamaños de salida conocidos.
¿Puede un identificador de hash determinar el algoritmo exacto con certeza?
No siempre. Múltiples algoritmos pueden producir la misma longitud de salida. SHA-256 y SHA3-256 ambos producen 64 caracteres hex. SHA-1 y RIPEMD-160 ambos producen 40 caracteres hex. En estos casos, la herramienta devuelve todos los candidatos. Necesitas contexto — el sistema fuente, documentación o prefijos de algoritmo — para reducirlo a un solo algoritmo.
¿Y si mi hash está codificado en Base64 en lugar de hex?
Los hashes codificados en Base64 usan un conjunto diferente de caracteres (A-Z, a-z, 0-9, +, /) y tienen longitudes diferentes que sus equivalentes hex. Un hash de 256 bits es 44 caracteres Base64 pero 64 caracteres hex. Primero decodifica la cadena Base64 a bytes sin procesar, luego verifica la longitud de bytes: 16 bytes = MD5, 20 bytes = SHA-1, 32 bytes = SHA-256, 48 bytes = SHA-384, 64 bytes = SHA-512.
¿Es seguro pegar hashes de contraseña en un identificador en línea?
Esta herramienta se ejecuta completamente en tu navegador — ningún dato se transmite a ningún servidor. El hash nunca abandona tu dispositivo. Dicho esto, para máxima seguridad operacional durante una auditoría formal, puedes verificar esto inspeccionando la pestaña de red en las herramientas de desarrollador de tu navegador o usando la herramienta sin conexión después de que la página haya cargado.
¿Por qué MD5 se sigue usando si está criptográficamente roto?
MD5 está roto para resistencia de colisiones — un atacante puede crear dos entradas diferentes que producen el mismo hash. Sin embargo, MD5 se sigue usando en contextos no relacionados con seguridad: sumas de verificación de archivos para verificación de descarga, claves de caché, deduplicación y ETags en HTTP. Para estos propósitos, las colisiones accidentales son astronómicamente improbables y los ataques deliberados no son una preocupación. MD5 no debe usarse para hashing de contraseña, firmas digitales o verificación de certificados.
¿Cómo identifico hashes bcrypt, scrypt o Argon2?
Las funciones hash de contraseña como bcrypt, scrypt y Argon2 usan prefijos de cadena distintivos en lugar de salida hex sin procesar. Los hashes bcrypt comienzan con '$2a$', '$2b$' o '$2y$' seguidos de un factor de costo. Los hashes Argon2 comienzan con '$argon2id$' o '$argon2i$'. Los hashes scrypt típicamente comienzan con '$scrypt$'. Estos no son digests criptográficos sin procesar, así que la identificación basada en longitud no se aplica — el prefijo mismo identifica el algoritmo.
¿Cuál es la diferencia entre SHA-2 y SHA-3?
SHA-2 (que incluye SHA-256, SHA-384 y SHA-512) se basa en la construcción Merkle-Damgard diseñada por la NSA y estandarizada en FIPS 180-4. SHA-3 (SHA3-256, SHA3-384, SHA3-512) se basa en la construcción esponja Keccak, seleccionada a través de una competencia pública NIST y estandarizada en FIPS 202. Producen las mismas longitudes de salida en niveles de seguridad coincidentes pero usan estructuras internas fundamentalmente diferentes. SHA-3 fue diseñado como alternativa por si se encuentran debilidades estructurales en SHA-2, aunque no se han demostrado tales debilidades.