Identificador de Criptografia

Cole um valor para identificar.

Identificar formato

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

    O resultado classifica os formatos compatíveis: primeiro os mais prováveis e depois o que mais a amostra pode ser.

  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.

Formatos que o identificador reconhece

Hashes em hexadecimal, reconhecidos pelo comprimento (em maiúsculas ou minúsculas):

Comprimento (caracteres hex) Mais provável
8 CRC32 ou outra soma de verificação de 32 bits
32 MD5, MD4 ou NTLM
40 SHA-1 ou RIPEMD-160
56 SHA-224 ou SHA3-224
64 SHA-256 ou SHA3-256
96 SHA-384 ou SHA3-384
128 SHA-512 ou SHA3-512

Por exemplo, d63dc919e201d7bc4c825630d2cf25fdc93d4b2f0d46706d29038d01 tem 56 caracteres: é o hash SHA-224 da palavra “password”.

Hashes de senha, reconhecidos pelo prefixo e pela estrutura:

  • $2a$, $2b$, $2y$: bcrypt, com o fator de custo lido do prefixo
  • $1$: md5crypt; $apr1$: Apache MD5 (htpasswd)
  • $5$ e $6$: sha256crypt e sha512crypt
  • $y$: yescrypt; $7$ e $scrypt$: scrypt
  • $argon2id$, $argon2i$, $argon2d$: Argon2
  • $pbkdf2-sha256$ (passlib) e pbkdf2_sha256$ (Django): PBKDF2
  • $P$ e $H$: phpass (WordPress, phpBB); $S$: Drupal 7
  • * seguido de 40 caracteres hex: MySQL 4.1+
  • {SSHA}, {SHA} e os outros esquemas LDAP comuns

Nos casos mais comuns, o resultado também mostra o modo do hashcat (-m): MD5 0, NTLM 1000, SHA-1 100, SHA-256 1400, SHA-512 1700, bcrypt 3200, md5crypt 500, sha256crypt 7400, sha512crypt 1800, phpass 400, Drupal 7 7900, MySQL 4.1+ 300 e Django PBKDF2-SHA256 10000.

Chaves, tokens e identificadores:

  • Blocos PEM (-----BEGIN ...-----): chaves privadas (RSA, EC, OpenSSH, PKCS #8), chaves privadas protegidas por senha, chaves públicas, certificados X.509 e solicitações de certificado
  • Armadura ASCII do OpenPGP: mensagens criptografadas (BEGIN PGP MESSAGE), blocos de chaves e assinaturas
  • Chaves públicas OpenSSH (ssh-rsa, ssh-ed25519, ecdsa-sha2-...)
  • JSON Web Tokens: o cabeçalho é decodificado para mostrar alg e typ, e um token de cinco partes com um campo enc é um JWE criptografado
  • UUIDs, com a respectiva versão (um identificador, não um hash)

Codificações, somente quando nada mais específico corresponde:

  • Hex, Base32, Base64 e Base64url, com o comprimento decodificado em bytes, e a codificação de URL (codificação por porcentagem).
  • Dados hex ou Base64 cujo comprimento decodificado é múltiplo de 16 bytes podem ser a saída de uma cifra de bloco como o AES; com 128, 256, 384 ou 512 bytes, também podem ser dados criptografados com RSA ou uma assinatura. Dados Base64 ou Base32 de 16, 20, 28, 32, 48 ou 64 bytes podem ser um hash MD5, SHA-1 ou SHA-2 bruto.

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

  • O algoritmo exato com 100% de certeza. Uma string de 64 caracteres hex é apresentada como SHA-256 ou SHA3-256, mas o BLAKE2s e outros hashes de 256 bits têm exatamente a mesma aparência. Hashes MD5, MD4 e NTLM têm todos 32 caracteres hex.
  • Qual cifra criptografou um blob. Dados criptografados parecem aleatórios. O comprimento só reduz as opções, então AES ou RSA é uma possibilidade, nunca uma certeza.
  • A força da chave. Um hash bcrypt mostra o fator de custo no prefixo ($2y$10$ = custo 10), mas não a força da senha original.
  • Se tem sal. Hashes de senha modernos (bcrypt, Argon2) sempre usam sal; os antigos (MD5/SHA puros) podem usar ou não.
  • O texto em claro. A identificação não reverte o hash; quebrá-lo é um processo separado, legal apenas com seus próprios dados.

Quando o identificador erra

  • Tokens com prefixos personalizados. Alguns aplicativos envolvem o hash com um prefixo próprio; remova esse invólucro primeiro.
  • Codificação dupla. Se o hex de um hash binário foi codificado de novo em Base64, a identificação vai falhar. Decodifique uma vez e verifique de novo.
  • Comprimentos incomuns. Hashes truncados (por exemplo, os primeiros 16 caracteres de um SHA-256 usados como ID) aparecem como simples dados hex, porque esse comprimento não corresponde a nenhum hash da tabela acima.
  • Vários valores de uma vez. A verificação lê um único valor. Se você colar uma lista de hashes, só a primeira linha é verificada; cole os outros um de cada vez.

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. Entre as duas etapas, ele fica guardado nesta aba do navegador, e o botão “Recomeçar” apaga esse valor.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas