A identificação de hash é o processo de determinar qual algoritmo hash criptográfico produziu um digest específico. Funções hash criptográficas como MD5, SHA-1 e SHA-256 produzem saídas de comprimento fixo, e o comprimento da saída é o sinal principal para identificar um hash desconhecido. Quando você encontra uma string hexadecimal em um dump de banco de dados, arquivo de configuração ou resposta de API, uma ferramenta identificadora de hash informa qual algoritmo provavelmente o gerou.
Cada algoritmo hash mapeia dados de entrada arbitrários para uma saída de tamanho fixo chamada digest. MD5 sempre produz 128 bits (32 caracteres hex), SHA-1 sempre produz 160 bits (40 caracteres hex) e SHA-256 sempre produz 256 bits (64 caracteres hex). Este comprimento de saída determinístico é o que torna a identificação algorítmica possível sem acesso aos dados de entrada originais ou ao código de hash.
A identificação apenas por comprimento nem sempre é definitiva. Vários algoritmos compartilham o mesmo tamanho de saída — por exemplo, SHA-256 e SHA3-256 produzem digests hexadecimais de 64 caracteres. Nestes casos, um identificador de hash fornece uma lista de algoritmos candidatos classificados por prevalência. Pistas contextuais como o sistema de origem, formato de codificação (hex vs. Base64) e a presença de prefixos de algoritmo (como '$2b$' para bcrypt) reduzem ainda mais as possibilidades.
Por que Usar um Identificador de Hash?
Hashes desconhecidos aparecem regularmente durante auditorias de segurança, migrações de banco de dados e análise forense. Um identificador de hash elimina adivinhação e aponta o algoritmo correto em segundos.
⚡
Detecção Instantânea
Cole um hash e obtenha algoritmos candidatos imediatamente. Sem necessidade de contar caracteres manualmente ou consultar tabelas de referência — a ferramenta mapea comprimento hex para todos os algoritmos correspondentes automaticamente.
🔒
Análise com Privacidade em Primeiro Lugar
Toda a identificação é executada inteiramente em seu navegador usando JavaScript. O valor do hash nunca deixa seu dispositivo, o que importa ao analisar hashes de senha, tokens de autenticação ou evidência forense sensível.
📋
Cobertura Completa de Algoritmo
Detecta MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 e seus contrapartes SHA-3. A tabela de referência cobre as famílias SHA-2 e SHA-3 completas mais alternativas comuns como RIPEMD-160 e BLAKE2.
🚫
Sem Conta ou Instalação
Funciona instantaneamente em qualquer navegador moderno. Sem inscrição, sem chave de API, sem ferramenta CLI para instalar. Marque como favorito e use sempre que encontrar um hash desconhecido — em qualquer SO, qualquer dispositivo.
Casos de Uso do Identificador de Hash
Auditoria de Segurança
Durante testes de penetração, identificar algoritmos de hash de senha em bancos de dados vazados determina a abordagem de ataque. Hashes MD5 e SHA-1 indicam proteção fraca e podem ser priorizados para remediação.
Migração de Banco de Dados
Ao migrar registros de usuários entre sistemas, o algoritmo hash de senha armazenado deve ser conhecido para configurar corretamente a nova camada de autenticação. Identificar mal o algoritmo causa falha em todos os logins.
DevOps e CI/CD
Pipelines de construção frequentemente incluem checksums para verificação de artefatos. Identificar se um checksum é SHA-256 ou SHA-512 garante que você use o comando de verificação correto em seus scripts de implantação.
Perícia Digital
Examinadores forenses encontram digests hash em logs de integridade de arquivo, registros blockchain e metadados de evidência. Identificar o algoritmo é um pré-requisito para verificar a cadeia de custódia de evidência.
Integração de API
APIs de terceiros às vezes retornam valores hash sem documentar o algoritmo. Identificar o tipo de hash a partir da resposta permite configurar corretamente sua verificação de assinatura de webhook ou validação de checksum.
Aprendendo Criptografia
Estudantes trabalhando em cursos de criptografia podem colar hashes gerados por diferentes algoritmos e imediatamente ver a relação entre escolha de algoritmo, comprimento de saída e propriedades de segurança.
Tabela de Referência de Comprimento de Algoritmo Hash
A tabela abaixo mapeia cada algoritmo hash comum para seu tamanho de saída em bits, caracteres hexadecimais e bytes crus. Esta é a tabela de busca principal usada por ferramentas de identificação de hash. Quando vários algoritmos compartilham o mesmo comprimento hex, você precisa de contexto adicional para distingui-los.
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
Desambiguando Comprimentos de Hash
Alguns comprimentos hex correspondem a múltiplos algoritmos. As duas ambigüidades mais comuns são hashes de 64 caracteres (SHA-256 vs. SHA3-256) e hashes de 40 caracteres (SHA-1 vs. RIPEMD-160). Aqui está como diferenciá-los quando apenas o comprimento é insuficiente.
64 caracteres hex: SHA-256 vs. SHA3-256
Ambos produzem digests de 256 bits (64 caracteres). SHA-256 é esmagadoramente mais comum na prática — commits Git, certificados TLS, blocos Bitcoin e a maioria das assinaturas de API usam SHA-256. SHA3-256 é tipicamente encontrado apenas em sistemas que explicitamente requerem conformidade com NIST SP 800-185 ou construções baseadas em Keccak. Verifique a documentação do sistema de origem para confirmar.
40 caracteres hex: SHA-1 vs. RIPEMD-160
SHA-1 é o hash de 160 bits muito mais prevalente — usado historicamente em Git (antes da transição para SHA-256), TLS e assinatura de código. RIPEMD-160 aparece principalmente em geração de endereço Bitcoin (HASH160 = SHA-256 seguido por RIPEMD-160). Se o hash vem de um contexto de criptomoeda, considere RIPEMD-160; caso contrário, SHA-1 é o candidato provável.
Exemplos de Código
Abaixo estão implementações funcionais de identificação de hash por comprimento hex em quatro idiomas. Cada função valida codificação hex, busca a contagem de caracteres e retorna todos os algoritmos correspondentes.
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)
Perguntas Frequentes
Como funciona a identificação de hash?
A identificação de hash se baseia principalmente no comprimento do digest codificado em hex. Cada algoritmo hash produz um número fixo de bits de saída: MD5 produz 128 bits (32 caracteres hex), SHA-1 produz 160 bits (40 caracteres hex), SHA-256 produz 256 bits (64 caracteres hex) e assim por diante. O identificador mede o comprimento da string, verifica que contém apenas caracteres hexadecimais e mapeia-a para tamaños de saída de algoritmo conhecidos.
Pode um identificador de hash determinar o algoritmo exato com certeza?
Nem sempre. Múltiplos algoritmos podem produzir o mesmo comprimento de saída. SHA-256 e SHA3-256 ambos produzem 64 caracteres hex. SHA-1 e RIPEMD-160 ambos produzem 40 caracteres hex. Nesses casos, a ferramenta retorna todos os candidatos. Você precisa de contexto — o sistema de origem, documentação ou prefixos de algoritmo — para reduzi-lo a um único algoritmo.
E se meu hash estiver codificado em Base64 em vez de hex?
Hashes codificados em Base64 usam um conjunto diferente de caracteres (A-Z, a-z, 0-9, +, /) e têm comprimentos diferentes de seus equivalentes hex. Um hash de 256 bits é 44 caracteres Base64 mas 64 caracteres hex. Primeiro decodifique a string Base64 para bytes crus, depois verifique o comprimento em bytes: 16 bytes = MD5, 20 bytes = SHA-1, 32 bytes = SHA-256, 48 bytes = SHA-384, 64 bytes = SHA-512.
É seguro colar hashes de senha em um identificador online?
Esta ferramenta é executada inteiramente em seu navegador — nenhum dado é transmitido para nenhum servidor. O hash nunca deixa seu dispositivo. Dito isso, para máxima segurança operacional durante uma auditoria formal, você pode verificar isso inspecionando a aba de rede nas ferramentas de desenvolvedor do seu navegador ou usando a ferramenta offline após a página ter carregado.
Por que MD5 ainda é usado se está criptograficamente quebrado?
MD5 está quebrado para resistência de colisão — um atacante pode criar duas entradas diferentes que produzem o mesmo hash. Porém, MD5 ainda é usado em contextos não-segurança: checksums de arquivo para verificação de download, chaves de cache, deduplicação e ETags em HTTP. Para esses fins, colisões acidentais são astronomicamente improváveis e ataques deliberados não são uma preocupação. MD5 não deve ser usado para hashing de senha, assinaturas digitais ou verificação de certificado.
Como identifico hashes bcrypt, scrypt ou Argon2?
Funções de hashing de senha como bcrypt, scrypt e Argon2 usam prefixos de string distintivos em vez de saída hex bruta. Hashes bcrypt começam com '$2a$', '$2b$' ou '$2y$' seguidos por um fator de custo. Hashes Argon2 começam com '$argon2id$' ou '$argon2i$'. Hashes scrypt tipicamente começam com '$scrypt$'. Estes não são digests criptográficos brutos, então a identificação baseada em comprimento não se aplica — o próprio prefixo identifica o algoritmo.
Qual é a diferença entre SHA-2 e SHA-3?
SHA-2 (que inclui SHA-256, SHA-384 e SHA-512) é baseado na construção Merkle-Damgard projetada pela NSA e padronizada em FIPS 180-4. SHA-3 (SHA3-256, SHA3-384, SHA3-512) é baseado na construção esponja Keccak, selecionada através de uma competição pública NIST e padronizada em FIPS 202. Produzem os mesmos comprimentos de saída em níveis de segurança correspondentes mas usam estruturas internas fundamentalmente diferentes. SHA-3 foi projetado como fallback caso fraquezas estruturais sejam encontradas em SHA-2, embora nenhuma fraqueza tenha sido demonstrada.