Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
hashes — Magic hashes – "colisões" de hash do PHP | Kitploit
Ferramentas/GitHubGitHub/spaze/hashes
Análise de VulnerabilidadesAnálise de HashSegurança WebCriptografiaAprendizado e EducaçãoRecursos Curados
GitHubspaze/hashes

hashes

Magic hashes – "colisões" de hash do PHP

Ver Repositório
83510367há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Hashes mágicos – "colisões" de hash em PHP

Registe-se com senha 1 e depois inicie sessão com senha 2. Se conseguir entrar, então o armazenamento usa o algoritmo especificado para aplicar hash à senha e o PHP usa == para as comparar (para MD5, SHA-1 e texto simples).

MD5, SHA-1, SHA-224, SHA-256 e outros

Para MD5, SHA-1 e a família SHA-2, usa-se o truque há muito conhecido (na verdade é uma funcionalidade documentada, consulte tabelas de comparação de tipos do PHP e números de ponto flutuante) segundo o qual, em PHP, '0e1' == '00e2' == '0', só que é usado para fins práticos. Qualquer senha corresponde a qualquer outra senha da lista. Isto é um truque diferente do de strings integrais a transbordar para números de ponto flutuante, basta reparar na diferença entre estas duas linhas.

Estes são todos os algoritmos com hashes mágicos:

  • CRC32
  • CRC32b
  • FNV-1a/32
  • FNV-1a/64
  • FNV-1/32
  • FNV-1/64
  • HAVAL-128,3
  • HAVAL-128,4
  • HAVAL-128,5
  • HAVAL-160,3
  • HAVAL-160,4
  • HAVAL-160,5
  • JOAAT
  • MD2
  • MD4
  • MD5
  • MD5-double md5(md5(password))
  • MurmurHash3_x86_32/Murmur3a
  • MurmurHash3_x86_128/Murmur3c
  • MurmurHash3_x64_128/Murmur3f
  • PHOTON-80/20/16
  • PHOTON-128/16/16
  • PHOTON-160/36/36
  • Quark u-Quark-136
  • RIPEMD-128
  • RIPEMD-160
  • SHA-1
  • SHA-224
  • SHA-256
  • SPONGENT-88/80/8
  • SPONGENT-88/176/88
  • SPONGENT-128/128/8
  • SPONGENT-128/256/128
  • Tiger/128,3
  • Tiger/128,4
  • Tiger/160,3
  • Tiger/160,4
  • Tiger/192,3
  • xxHash-XXH32
  • xxHash-XXH64
  • xxHash-XXH3_64bits
  • xxHash-XXH3_128bits

Citando @0xb0bb, "existem outras aplicações para hashes mágicos além da comparação de senhas (como camadas de cache ou dados derivados da saída de uma função hash) onde estes algoritmos conhecidos como inseguros, menos conhecidos e pseudo-hash podem ser encontrados mais facilmente."

Texto simples

Para texto simples, são usados vários truques de conversão. A primeira senha corresponde apenas à segunda. Os truques estão agrupados por versões do PHP que os permitem.

bcrypt

O bcrypt trunca senhas até um comprimento máximo de 72 caracteres. As senhas correspondem se os primeiros 72 caracteres de ambas as senhas coincidirem.

descrypt

O descrypt (crypt DES UNIX tradicional) trunca senhas até um comprimento máximo de 8 caracteres. As senhas também correspondem se os primeiros 8 caracteres de ambas as senhas coincidirem, consulte a secção "Verificação cruzada geral".

PBKDF2-HMAC-SHA1, PBKDF2-HMAC-SHA224, PBKDF2-HMAC-SHA256

Se usar uma senha com mais de 64 bytes e aplicar hash com PBKDF2-HMAC-SHA1, ela é primeiro submetida a um pré-hash com SHA1, portanto PBKDF2-HMAC-SHA1(password1) === PBKDF2-HMAC-SHA1(password2) porque sha1(password1) === bin2hex(password2). O pré-hash semelhante é aplicado no caso de PBKDF2-HMAC-SHA224 e PBKDF2-HMAC-SHA256.

Tiger/192,3

Neste momento há apenas um hash mágico em cada um graças a Norbert Tihanyi, esperemos que mais sejam adicionados no futuro.

Conclusão

Use === ao comparar qualquer coisa* em PHP, não ==. E use password_hash() e password_verify() para hash de senhas em PHP; não use MD5 ou SHA-1. *Use hash_equals() ao comparar hashes.

História

Tudo começou com este tweet. Gerei QNKCDZO e 240610708 em fevereiro de 2014 e desde então espalhou-se por toda a internet. Basta pesquisar no Google.

Baixar ferramenta