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

  1. 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.
  2. Leia o resultado Os algoritmos candidatos aparecem ordenados da maior para a menor probabilidade.
  3. Confira o comprimento e o conjunto de caracteres O fundamento também é exibido, para que você entenda **por que aquele candidato foi proposto**.
  4. 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

Não, não apenas a partir do valor de hash. Alguns algoritmos, como SHA-256 e SHA3-256, produzem saídas com exatamente o mesmo comprimento, então a saída sozinha nunca pode ser conclusiva. Se você precisar saber com certeza, terá que verificar o código-fonte ou a documentação da aplicação que gerou o hash.

BCrypt e Argon2 são projetados especificamente para armazenamento de senhas e usam um "Modular Crypt Format" que incorpora o nome do algoritmo e os parâmetros como texto no início do hash, como $2b$ ou $argon2id$. Enquanto essa informação puder ser lida, o algoritmo pode ser determinado de forma única.

Não, não pode. Esta ferramenta apenas estima o tipo de algoritmo a partir da "aparência" do valor de hash — ela não oferece nenhum recurso para recuperar os dados originais a partir de um hash, como um ataque de força bruta.

A resistência a colisões de MD5 e SHA-1 já foi quebrada, então, se forem encontrados em uso para armazenamento de senhas, devem ser tratados como um risco de segurança. Recomenda-se migrar esses sistemas para BCrypt ou Argon2id, projetados especificamente para armazenamento de senhas.

Sim. Usando a ferramenta deste site Cálculo e comparação em lote de hashes, você pode inserir a mesma string e calcular de fato os valores MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt e Argon2id para conferi-los com este resultado de identificação.
Tool-kun

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.