Ferramenta de Identificação de Hash (busca reversa) | Detecta automaticamente MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt, Argon2
Cole uma string que pareça um hash e esta ferramenta estima qual algoritmo — MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt ou Argon2 — provavelmente a gerou, com base no comprimento, no conjunto de caracteres e no prefixo. Todo o processamento acontece inteiramente no navegador.
O próprio valor de hash não registra o nome do algoritmo usado para gerá-lo. Como vários algoritmos podem compartilhar o mesmo comprimento de saída, este resultado é a "suposição mais provável" com base no comprimento, no conjunto de caracteres e no prefixo — não uma conclusão 100% certa.
Dicas para identificar hashes
- A identificação usa apenas o comprimento, o conjunto de caracteres (hexadecimal ou Base64) e o prefixo como pistas — ela não recalcula o hash para verificá-lo. Mostra apenas os candidatos que podem ser inferidos a partir do formato.
- BCrypt (
$2a$/$2b$/$2y$) e Argon2 ($argon2id$etc.) incorporam o nome do algoritmo e os parâmetros diretamente no prefixo, por isso podem ser identificados com alta confiança. - Uma string hexadecimal de 64 caracteres costuma ser SHA-256, mas o SHA3-256 produz o mesmo comprimento, então, se você souber a linguagem ou a biblioteca do sistema de origem, use também essa informação como referência.
- Dumps de hash copiados em várias linhas (separados por quebras de linha ou espaços) também têm os espaços em branco internos removidos automaticamente antes da identificação, então você pode colá-los como estão.
- Se não tiver certeza sobre o resultado, a abordagem mais confiável é verificar a origem do hash — o código-fonte ou a documentação da aplicação.
Perguntas frequentes
$2b$ ou $argon2id$. Enquanto essa informação puder ser lida, o algoritmo pode ser determinado de forma única.
Curiosidade — Por que um valor de hash sozinho não permite determinar o algoritmo
A função de uma função hash é converter dados de entrada em uma saída de comprimento fixo, e essa saída (o digest) em si não contém nenhum metadado que indique qual algoritmo a produziu. Isso é uma consequência inevitável do design: incorporar metadados mudaria o comprimento da saída, quebrando a propriedade de "comprimento fixo" essencial a uma função hash criptográfica. Isso deixa apenas a "aparência" da saída — seu comprimento e conjunto de caracteres — como pista.
Essa limitação aparece de forma mais evidente na relação entre as famílias SHA-2 e SHA-3. SHA-256 e SHA3-256 têm estruturas internas completamente diferentes (SHA-2 usa uma construção Merkle–Damgård, SHA-3 usa uma construção esponja), mas ambas são projetadas para produzir uma saída de 256 bits — 64 caracteres hexadecimais. A mesma relação existe entre SHA-224/SHA3-224, SHA-384/SHA3-384 e SHA-512/SHA3-512, então o comprimento da saída sozinho nunca pode determinar qual é qual. Como o SHA-2 é muito mais comum na prática, esta ferramenta apresenta a variante SHA-2 como candidata principal quando os comprimentos coincidem, mas isso é, no fim das contas, apenas uma suposição estatística.
Por outro lado, algoritmos de hash de senhas como BCrypt e Argon2 resolvem essa ambiguidade adotando um formato autodescritivo conhecido como Modular Crypt Format. Strings como $2b$12$... ou $argon2id$v=19$... incorporam como texto, no início do hash, o nome do algoritmo, a versão e os parâmetros, tornando possível reconstruir de forma única como o valor foi calculado apenas olhando para ele. Ao encontrar um hash nesse formato, uma identificação definitiva se torna possível.
Esse tipo de trabalho de identificação surge em cenários reais, como investigar dumps de senhas recuperados de sistemas legados, ou em desafios de criptografia em competições de segurança CTF (Capture The Flag). Reduzir as possibilidades de algoritmo a partir de um valor de hash permite decidir com eficiência qual ferramenta de análise ou abordagem de quebra tentar em seguida, como qual modo de ataque selecionar no Hashcat.