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.
Deduzir o algoritmo a partir do valor hash
**O valor hash não traz escrito em lugar nenhum o nome do algoritmo que o gerou.** Ainda assim é possível deduzi-lo, e as pistas são três: **a quantidade de caracteres da saída** (32 no MD5, 40 no SHA-1, 64 no SHA-256 e 128 no SHA-512), **o tipo de caractere** (hexadecimal ou Base64) e **prefixos como `$2b$` ou `$argon2id$`**. Esta ferramenta determina com esses três elementos qual é o algoritmo mais provável e mostra também o raciocínio que levou a essa conclusão.
**Vale sublinhar que se trata de uma dedução, e não de um veredicto.** O motivo é que vários algoritmos compartilham o mesmo comprimento de saída: uma cadeia de 64 caracteres hexadecimais pode ser SHA-256, mas também SHA3-256 ou BLAKE2s, e pela aparência não há como separá-los. Em compensação, os formatos que **carregam os próprios parâmetros dentro da cadeia**, como bcrypt e Argon2, são identificados com segurança pelo prefixo. Toda a análise acontece dentro do navegador, de modo que a cadeia colada nunca é enviada a servidor algum.
Como identificar um hash
- Cole a cadeia do hash Os espaços no início e no fim são ignorados, então você pode copiá-la tal como está no registro.
- Leia o resultado Os algoritmos candidatos aparecem ordenados da maior para a menor probabilidade.
- Confira o comprimento e o conjunto de caracteres O fundamento também é exibido, para que você entenda **por que aquele candidato foi proposto**.
- Observe se há prefixo Se a cadeia começa por `$`, os candidatos se reduzem praticamente a um só.
Dicas para aproveitar melhor
- 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.
Quando é útil
Ao examinar um sistema herdado
Permite ter uma primeira ideia de como foram gerados os hashes que restaram no banco de dados.
Ao decidir se a migração é possível
**Se forem bcrypt ou Argon2, você pode mantê-los com os parâmetros e migrar aos poucos**, conforme os usuários fizerem login.
Ao detectar um problema de segurança
**Encontrar MD5 ou SHA-1 guardando senhas já é, em si, um achado a corrigir.**
Ao interpretar registros ou despejos
Diante de uma cadeia hexadecimal longa de origem desconhecida, serve de ponto de partida para descobrir o que é.
Termos sobre hashes
- MD5
- Função hash de 128 bits. **As colisões são construídas na prática, então não deve ser usada nem para senhas nem para detectar alterações.**
- SHA-1
- Função hash de 160 bits. Assim como o MD5, tem ataques de colisão demonstrados e não é recomendada para usos novos.
- SHA-256 / SHA-512
- Funções da família SHA-2. **A rapidez, que em outros contextos é uma vantagem, vira fraqueza ao guardar senhas**, porque facilita os ataques de força bruta.
- bcrypt
- Hash pensado para senhas que carrega o fator de custo na própria cadeia. Começa por `$2a$` ou `$2b$`.
- Argon2
- Hash de senhas vencedor do concurso de 2015. Começa por `$argon2id$` e permite ajustar também a quantidade de memória.
- Sal
- Valor aleatório que muda a cada hash. **O bcrypt e o Argon2 o trazem embutido dentro da própria cadeia**, dispensando guardá-lo à parte.
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.