Identificador de Criptografia

Você raspou um dump de banco de dados e vê strings como $2y$10$... ou 5f4dcc3b5aa765d61d8327deb882cf99 e precisa saber o que está olhando antes de começar a quebrar ou reverter. Este identificador aplica heurísticas de comprimento, conjunto de caracteres, estrutura e prefixo para adivinhar o algoritmo ou codificação mais provável por trás de uma amostra de texto cifrado.

Como identificar um texto cifrado

  1. 1

    Cole a amostra

    Um único hash, blob de texto cifrado, token ou string codificada.

  2. 2

    Veja os formatos correspondentes

    Todos os formatos cujo padrão corresponde à sua amostra são listados no resultado.

  3. 3

    Verifique cruzadamente

    Se vários formatos corresponderem, use um quebrador de hash ou decodificador para confirmar o correto.

  4. 4

    Observe a incerteza

    A identificação a partir de uma única amostra raramente é definitiva; se nada corresponder, a ferramenta informa isso.

Padrões de assinatura que o identificador usa

Baseado em comprimento (para hashes codificados em hex):

Comprimento (chars hex) Identificado como
32 MD5
40 SHA-1
64 SHA-256
128 SHA-512

Outros comprimentos, como SHA-224 com 56 chars hex ou SHA-384 com 96, não são reconhecidos como hashes (uma string hex de 56 ou 96 caracteres é classificada como Base64).

Baseado em prefixo (apenas prefixos bcrypt são reconhecidos):

  • $2a$ $2b$ $2y$ bcrypt

Outros prefixos no estilo crypt ($1$, $5$, $6$, $argon2i$, $argon2id$, $pbkdf2$) não são reconhecidos.

Baseado em codificação:

  • Todos os caracteres em [A-Za-z0-9+/=] e comprimento múltiplo de 4: provavelmente Base64.
  • Três segmentos separados por ., cada um com caracteres de [A-Za-z0-9_-]: JWT.

Wrappers PEM, blobs OpenSSH ssh-rsa/ssh-ed25519 e strings Base64url que contêm - ou _ não são detectados.

O que a identificação não pode dizer

  • Algoritmo exato com 100% de certeza. Uma string de 64 caracteres hex é reportada como SHA-256, mas pode ser também SHA3-256 ou BLAKE2s; eles são indistinguíveis por texto cifrado. Hashes NTLM (também 32 chars hex) são idênticos ao MD5.
  • Força da chave. Um hash bcrypt mostra o fator de custo em seu prefixo ($2y$10$ = custo 10), mas não a força da senha subjacente.
  • Se é salgado. Hashes de senha modernos (bcrypt, Argon2) são sempre salgados; os antigos (MD5/SHA bruto) podem ou não ser.
  • O texto em claro. A identificação não reverte o hash; quebrar é um processo separado, legal apenas em seus próprios dados.

Quando o identificador está errado

  • Tokens com prefixos personalizados. Aplicativos às vezes envolvem um hash com seu próprio prefixo; remova o wrapper primeiro.
  • Codificação dupla. Hex codificado em Base64 de um hash binário será mal identificado. Tente decodificar uma vez e executar novamente.
  • Comprimentos incomuns. Hashes truncados (primeiros 16 chars de SHA-256 usados como ID) aparecem como “Base64” porque as regras de caracteres e comprimento se sobrepõem.
  • Formatos emoldurados ou envolvidos. Blocos PEM, chaves OpenSSH e pbkdf2_sha256$... do Django não são reconhecidos; remova o wrapper ou o prefixo e tente novamente, ou use um parser dedicado.

Casos de uso

  • Auditorias de segurança: catalogando tipos de hash em um código antes de uma migração criptográfica.
  • Desafios CTF: uma rápida primeira análise de um blob desconhecido.
  • Resposta a incidentes: identificando o formato de credenciais vazadas.
  • Depuração de framework: descobrindo que codificação uma biblioteca produz.

Lembrete ético

Identificar um formato de hash é uma pesquisa passiva. Quebrar o hash de outra pessoa sem autorização viola as leis de uso indevido de computadores na maioria das jurisdições. Trabalhe apenas em hashes que você possui ou está autorizado a analisar.

Perguntas frequentes

Parcialmente: MD5 tem 32 caracteres hex, SHA-1 tem 40. Se ambos estão na mesma faixa de comprimento, você não pode distinguir apenas pelo hash. O contexto (nome da coluna do banco de dados, padrões do framework, esquema vazado) geralmente resolve isso.

Não. Ele apenas identifica. Reverter um hash ou decifrar um texto cifrado requer ferramentas separadas (e a chave, ou recursos computacionais para quebrar) e é legal apenas em seu próprio material.

Argon2id (ou bcrypt com alto fator de custo) é a recomendação atual. PBKDF2-SHA256 e scrypt continuam aceitáveis. MD5 simples, SHA-1 ou SHA-256 sem sal não são seguros para armazenamento de senhas.

Não. O valor que você cola é enviado ao nosso servidor para a verificação do formato, mas não é armazenado em nenhum banco de dados e não é adicionado ao link da página.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas