Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hashes — Hashes mágicos – "colisiones" de hash de PHP | Kitploit
Herramientas/GitHubGitHub/spaze/hashes
Análisis de VulnerabilidadesAnálisis de HashSeguridad WebCriptografíaAprendizaje y EducaciónRecursos Curados
GitHubspaze/hashes

hashes

Hashes mágicos – "colisiones" de hash de PHP

Ver Repositorio
83510367hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Hashes mágicos – «colisiones» de hash en PHP

Regístrate con contraseña 1 y luego inicia sesión con contraseña 2. Si consigues entrar, entonces el almacenamiento usa el algoritmo especificado para aplicar hash a la contraseña y PHP usa == para compararlas (para MD5, SHA-1 y texto plano).

MD5, SHA-1, SHA-224, SHA-256 y otros

Para MD5, SHA-1 y la familia SHA-2 se usa el truco conocido desde hace tiempo (en realidad es una funcionalidad documentada; consulta tablas de comparación de tipos de PHP y números de coma flotante) según el cual en PHP '0e1' == '00e2' == '0'; aquí solo se usa con fines prácticos. Cualquier contraseña coincide con cualquier otra contraseña de la lista. Este es un truco distinto al de las cadenas integrales que se desbordan en números de coma flotante; basta con ver la diferencia entre estas dos líneas.

Estos son todos los algoritmos con 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

En palabras de @0xb0bb, «hay otras aplicaciones para los hashes mágicos además de la comparación de contraseñas (como capas de caché o datos derivados de la salida de una función hash) en las que estos algoritmos conocidos por ser inseguros, menos conocidos y pseudo-hash se pueden encontrar con mayor facilidad».

Texto plano

Para texto plano se usan varios trucos de conversión. La primera contraseña coincidirá únicamente con la segunda. Los trucos están agrupados por versiones de PHP que los permiten.

bcrypt

bcrypt trunca las contraseñas a una longitud máxima de 72 caracteres. Las contraseñas coinciden si los primeros 72 caracteres de ambas contraseñas coinciden.

descrypt

descrypt (crypt DES tradicional de UNIX) trunca las contraseñas a una longitud máxima de 8 caracteres. Las contraseñas también coinciden si los primeros 8 caracteres de ambas contraseñas coinciden; consulta la sección «General cross-check».

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

Si usas una contraseña de más de 64 bytes y le aplicas hash con PBKDF2-HMAC-SHA1, primero se pre-hashea con SHA1, de modo que PBKDF2-HMAC-SHA1(password1) === PBKDF2-HMAC-SHA1(password2) porque sha1(password1) === bin2hex(password2). El mismo pre-hasheo se aplica en el caso de PBKDF2-HMAC-SHA224 y PBKDF2-HMAC-SHA256.

Tiger/192,3

Por ahora solo hay un hash mágico en cada uno de ellos, gracias a Norbert Tihanyi; con suerte, se añadirán más en el futuro.

Conclusión

Usa === al comparar cualquier cosa* en PHP, no ==. Y usa password_hash() y password_verify() para el hash de contraseñas en PHP; no uses MD5 ni SHA-1. *Usa hash_equals() al comparar hashes.

Historia

Todo empezó con este tweet. Generé QNKCDZO y 240610708 en febrero de 2014 y desde entonces se ha extendido por todo internet. Solo búscalo en Google.

Descargar herramienta