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
Cole a amostra
Um único hash, blob de texto cifrado, token ou string codificada.
-
2
Veja os formatos correspondentes
Todos os formatos cujo padrão corresponde à sua amostra são listados no resultado.
-
3
Verifique cruzadamente
Se vários formatos corresponderem, use um quebrador de hash ou decodificador para confirmar o correto.
-
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
Codificador de Arquivos Base64
Codifique qualquer arquivo (PDF, ZIP, imagem, executável) em texto Base64 para embutir em JSON, e-mail, YAML ou URIs de dados. Funciona localmente, sem upload.
Codificador de Cifra A1Z26
Codifique texto usando a cifra A1Z26 (A=1, B=2, ... Z=26) ou decodifique uma sequência de números de volta para letras, com separador personalizável.
Codificador e Decodificador Base58
Codifique texto UTF-8 ou bytes hexadecimais e decodifique Base58 com segurança usando o alfabeto Bitcoin, Ripple ou Flickr.
Codificador de Cifra de César
Criptografe e descriptografe texto usando a cifra de César. Qualquer deslocamento de 1-25, suporta ROT13 como um caso especial, preserva pontuação e maiúsculas/minúsculas.
Codificador e Decodificador Base85
Codifique e decodifique Base85 na variante Adobe Ascii85, a usada em arquivos PostScript e PDF. Mais compacto que Base64 para dados binários.
Codificador e Decodificador Base32
Codifique e decodifique strings Base32 usando o alfabeto RFC 4648. Útil para segredos TOTP, tokens sem distinção de maiúsculas e identificadores digitados por humanos.
Ferramenta disponível em outros idiomas
- Verschlüsselungs-Identifikator [DE]
- Şifreleme Tanımlayıcısı [TR]
- معرّف التشفير [AR]
- Encryption Identifier [EN]
- 加密标识符 [ZH]
- 暗号化識別子 [JA]
- Identyfikator szyfrowania [PL]
- Versleutelingsidentifier [NL]
- Identificador de Cifrado [ES]
- 암호화 식별자 [KO]
- Mã định danh mã hóa [VI]
- Krypteringsidentifierare [SV]
- Identifikasi Enkripsi [ID]
- ตัวระบุการเข้ารหัส [TH]
- Identificateur de chiffrement [FR]
- Identificatore di Crittografia [IT]
- Идентификатор шифрования [RU]