Você tem um hash. É uma longa sequência de caracteres hexadecimais ou talvez tenha um prefixo estranho como $2b$. Você precisa saber qual algoritmo o criou – para um desafio CTF, uma auditoria de segurança, recuperação de senha ou apenas curiosidade.
Aqui está o guia definitivo para identificar qualquer tipo de hash por seu comprimento, conjunto de caracteres e formato.
O que é um hash?
Um hash é uma string de comprimento fixo produzida por uma função matemática unidirecional. Insira qualquer entrada – uma senha, um arquivo, uma mensagem – em um algoritmo de hash e você obterá uma impressão digital exclusiva de tamanho fixo. A mesma entrada sempre produz a mesma saída, mas não é possível reverter o processo para recuperar a entrada original.
Funções hash são usadas em todos os lugares: armazenamento de senhas em bancos de dados, verificação de integridade de arquivos, assinaturas digitais e desduplicação de dados.
Como identificar um hash: o método rápido
A maneira mais rápida de identificar um hash é pelo seu contagem de caracteres e conjunto de caracteres. A maioria dos hashes é composta de caracteres hexadecimais (0–9, a–f), mas alguns algoritmos como bcrypt e SHA-512 crypt usam um alfabeto Base64 mais amplo.
Etapa 1: Conte os caracteres. Etapa 2: Observe o conjunto de caracteres (somente hexadecimal ou alfanumérico+especial). Etapa 3: Verifique se há um prefixo (bcrypt começa com $2b$, a cripta SHA-512 começa com $6$).
Ou apenas use nosso Ferramenta identificador de hash para identificá-lo automaticamente.
Tabela de referência de identificação de hash
| Tipo de hash | Comprimento | Conjunto de caracteres | Prefixo/Notas |
|---|---|---|---|
| MD5 | 32 | Hex (0-9, af) | Sem prefixo |
| SHA-1 | 40 | Hexágono | Sem prefixo |
| SHA-224 | 56 | Hexágono | Sem prefixo |
| SHA-256 | 64 | Hexágono | Sem prefixo |
| SHA-384 | 96 | Hexágono | Sem prefixo |
| SHA-512 | 128 | Hexágono | Sem prefixo |
| SHA3-256 | 64 | Hexágono | Indistinguível do SHA-256 por comprimento |
| SHA3-512 | 128 | Hexágono | Indistinguível do SHA-512 por comprimento |
| NTLM | 32 | Hexágono | Mesmo comprimento do MD5 — o contexto é importante |
| MySQL 4.1+ | 40 | Hexágono | Às vezes prefixado com * |
| bcrypt | 60 | Alfabeto Base64 | Começa com $2a$, $2b$ou $2y$ |
| Cripta SHA-512 | 106 | Alfabeto Base64 | Começa com $6$ |
| Cripta SHA-256 | 63 | Alfabeto Base64 | Começa com $5$ |
| Cripta MD5 | 34 | Alfabeto Base64 | Começa com $1$ |
| Argônio2 | Variável | Base64 + $ |
Começa com $argon2id$ ou $argon2i$ |
| criptografia | Variável | Base64 + $ |
Começa com $s0$ |
| PBKDF2 | Variável | Base64 ou Hexadecimal | Frequentemente prefixado com pbkdf2_sha256$ |
| Hash LM | 32 | Hexágono | Windows legado — duas metades de 16 caracteres |
| CRC32 | 8 | Hexágono | Muito curto — 4 bytes |
| Hidromassagem | 128 | Hexágono | Menos comum |
| RIPEMD-160 | 40 | Hexágono | Mesmo comprimento do SHA-1 |
| Adler-32 | 8 | Hexágono | Checksum, não um hash criptográfico |
Identificando os hashes mais comuns
MD5 (32 caracteres hexadecimais)
5f4dcc3b5aa765d61d8327deb882cf99
MD5 é o hash mais comum que você encontrará. 32 caracteres hexadecimais minúsculos, sem prefixo. Ele foi amplamente usado para armazenamento de senhas, mas agora é considerado criptograficamente quebrado – é rápido de calcular, o que torna triviais os ataques de força bruta.
Comum em: Aplicativos web legados, somas de verificação de arquivos, desafios CTF, despejos de senha de banco de dados.
Limitação: MD5 e NTLM têm 32 caracteres hexadecimais. Se você encontrar um hash de 32 caracteres em um sistema Windows, provavelmente é NTLM. Em um aplicativo da web, provavelmente é MD5.
SHA-1 (40 caracteres hexadecimais)
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
40 caracteres hexadecimais. Obsoleto para a maioria dos usos de segurança desde 2017, mas ainda comum em sistemas mais antigos, commits Git, certificados SSL (legado) e somas de verificação de arquivos.
Comum em: IDs de objetos Git, certificados SSL mais antigos, ferramentas de verificação de arquivos.
SHA-256 (64 caracteres hexadecimais)
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
O padrão atual para a maioria das aplicações. 64 caracteres hexadecimais. Usado em Bitcoin (SHA-256 duplo), assinaturas JWT, wrappers modernos de armazenamento de senhas e TLS.
Comum em: Blockchain, assinaturas de API, armazenamento de senhas (geralmente agrupadas em PBKDF2 ou HMAC), verificação de integridade de arquivos.
SHA-512 (128 caracteres hexadecimais)
b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86
128 caracteres hexadecimais. Mais forte, mas mais lento que o SHA-256. Usado em alguns hashing de senha do Linux (/etc/shadow) e aplicativos de alta segurança.
bcrypt (60 caracteres, semelhante a Base64)
$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW
O formato hash mais reconhecível devido ao seu prefixo estruturado:
$2b$(ou$2a$,$2y$) — versão do algoritmo12— fator de custo (fator de trabalho), quantas rodadas- Tudo depois — salt de 53 caracteres + hash combinado
bcrypt é deliberadamente lento. Você não pode acelerar isso com uma GPU – e é por isso que é a escolha certa para hash de senha. Se você vir uma sequência de 60 caracteres começando com $2, é bcrypt.
Comum em: Aplicativos PHP (password_hash()), Ruby on Rails, os frameworks web mais modernos.
NTLM (32 caracteres hexadecimais)
b4b9b02e6f09a9bd760f388b67351e2b
Visualmente idêntico ao MD5 — 32 caracteres hexadecimais minúsculos. NTLM é o hash de autenticação legado do Windows. Se você estiver fazendo CTF ou pentestando sistemas Windows, eles aparecerão com frequência.
Como diferenciar MD5 de NTLM: Contexto. NTLM vem de bancos de dados SAM do Windows, Active Directory ou ferramentas como Mimikatz. MD5 normalmente vem de bancos de dados de aplicativos da web.
Argon2 (comprimento variável, prefixo estruturado)
$argon2id$v=19$m=65536,t=3,p=4$c29tZXNhbHQ$RdescudvJCsgt3ub+b+dWRWJTmaaJObG
Vencedor do concurso de hash de senha de 2015. Projetado para ter muita memória, tornando-o resistente a ataques baseados em GPU e ASIC. Frameworks modernos (Django 4+, PHP 8.1+ nativo) estão adotando o Argon2id.
Detalhamento do prefixo: $argon2id$ = variante, v=19 = versão, m=65536 = custo de memória, t=3 = custo de tempo, p=4 = paralelismo.
Como identificar um hash quando o comprimento por si só não é suficiente
Alguns hashes têm comprimentos e conjuntos de caracteres idênticos:
| Colisão | Como distinguir |
|---|---|
| MD5 vs NTLM (32 hexadecimais) | Contexto de origem — Windows = NTLM, web DB = MD5 |
| SHA-1 vs RIPEMD-160 (40 hexadecimais) | RIPEMD-160 é muito mais raro; SHA-1 é o palpite seguro |
| SHA-256 vs SHA3-256 (64 hexadecimais) | Precisa de metadados ou ferramentas de algoritmo |
| SHA-512 vs SHA3-512 vs Whirlpool (128 hexadecimais) | Precisa de contexto ou ferramenta hash-id |
Quando o comprimento por si só não resolve o problema, você precisa:
- Verifique o sistema de origem (SO, estrutura do aplicativo, banco de dados)
- Tente quebrar um valor conhecido para confirmar o algoritmo
- Use uma ferramenta de identificador de hash que testa vários algoritmos
Usando uma ferramenta identificadora de hash
Em vez de contar caracteres manualmente, use nosso Identificador de hash — cole qualquer hash e ele irá:
- Combine o comprimento e o conjunto de caracteres com todos os algoritmos conhecidos
- Destaque os candidatos mais prováveis
- Sinaliza formatos prefixados (bcrypt, SHA-crypt, Argon2) automaticamente
Isso é especialmente útil para desafios de CTF onde você encontra formatos de hash desconhecidos ou precisa processar vários hashes rapidamente.
Cenários do mundo real
Cenário 1: você tem um despejo de banco de dados
Você encontra uma tabela de usuários com um password coluna contendo strings de 60 caracteres começando com $2b$. Estes são hashes bcrypt. Modernos e implementados corretamente – quebrá-los é computacionalmente caro.
Cenário 2: desafio CTF — você encontra um arquivo hash
098f6bcd4621d373cade4e832627b4f6
32 caracteres hexadecimais → MD5. A corda test hashes para este valor em MD5. Um ataque rápido à lista de palavras com hashcat ou john quebrará senhas comuns instantaneamente.
hashcat -m 0 -a 0 hash.txt wordlist.txt
Modo -m 0 é MD5. Se fosse SHA-1, use -m 100. SHA-256 é -m 1400.
Cenário 3: Linux /etc/shadow
$6$rounds=5000$usesomesalt$IxDD3jerizQ5s/bS3FbSsO6hMGFjfSKNBWENHyJ7FXKC4XiuT3pOlLGEBpRiuJ3QGJlyXfS4uNIaVpqEcF2b.
Começa com $6$ → Cripta SHA-512. O formato é: $id$salt$hash onde id=6 significa SHA-512.
| ID | Algoritmo |
|---|---|
$1$ |
Cripta MD5 |
$5$ |
Cripta SHA-256 |
$6$ |
Cripta SHA-512 |
$y$ |
simcrypt |
$2b$ |
bcrypt |
Referência do modo Hashcat
Se você estiver quebrando hashes (em sistemas que você está autorizado a testar), aqui estão os modos hashcat para os tipos mais comuns:
| Tipo de hash | Modo Hashcat |
|---|---|
| MD5 | 0 |
| SHA-1 | 100 |
| SHA-256 | 1400 |
| SHA-512 | 1700 |
| NTLM | 1000 |
| bcrypt | 3200 |
| Cripta SHA-512 ($6$) | 1800 |
| MySQL 4.1+ | 300 |
| WPA/WPA2 | 2500 |
Folha de referências de identificação rápida
- 8 caracteres, hexadecimal → CRC32 ou Adler-32 (soma de verificação, não criptografada)
- 32 caracteres, hexadecimal → MD5 ou NTLM
- 40 caracteres, hexadecimal → SHA-1 ou RIPEMD-160
- 56 caracteres, hexadecimal → SHA-224
- 64 caracteres, hexadecimal → SHA-256 ou SHA3-256
- 96 caracteres, hexadecimal → SHA-384
- 128 caracteres, hexadecimal → SHA-512, SHA3-512 ou Whirlpool
- 60 caracteres, começa com
$2→ bcrypt - Começa com
$1$→ Cripta MD5 - Começa com
$5$→ Cripta SHA-256 - Começa com
$6$→ Cripta SHA-512 - Começa com
$argon2→ Argônio2 - Começa com
pbkdf2_→ PBKDF2
Identifique seu hash agora
Use nosso aplicativo gratuito Ferramenta identificador de hash — cole qualquer hash e obtenha uma identificação instantânea com pontuações de confiança e algoritmos prováveis.
Ferramentas e guias relacionados: