Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
hashes — Magic hashes – تصادمات تجزئة PHP | Kitploit
أدوات/GitHubGitHub/spaze/hashes
تحليل الثغرات الأمنيةتحليل التجزئةأمن الويبالتشفيرالتعلم والتعليمموارد منسقة
GitHubspaze/hashes

hashes

Magic hashes – تصادمات تجزئة PHP

عرض المستودع
83510350منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

التجزئات السحرية – "تصادمات" تجزئات PHP

سجّل باستخدام كلمة المرور 1 ثم سجّل الدخول باستخدام كلمة المرور 2. إذا نجح الدخول، فهذا يعني أن التخزين يستخدم الخوارزمية المحددة لتجزئة كلمة المرور وأن PHP تستخدم == للمقارنة بينهما (بالنسبة إلى MD5 وSHA-1 والنص الصريح).

MD5، SHA-1، SHA-224، SHA-256 وغيرها

بالنسبة إلى MD5 وSHA-1 وعائلة SHA-2، تستخدم الحيلة المعروفة منذ زمن طويل (وهي في الواقع ميزة موثّقة، انظر و) بحيث يكون في PHP، وتُستخدم هنا لأغراض . أي كلمة مرور أي كلمة مرور أخرى من القائمة. هذه حيلة مختلفة عن ، فقط لاحظ الفرق بين .

جداول مقارنة الأنواع في PHP
أرقام الفاصلة العائمة
'0e1' == '00e2' == '0'
عملية
تطابق
السلاسل الصحيحة التي تفيض إلى أرقام فاصلة عائمة
هذين السطرين

هذه هي جميع الخوارزميات ذات التجزئات السحرية:

  • 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

نقتبس من @0xb0bb: "هناك تطبيقات أخرى للتجزئات السحرية بخلاف مقارنات كلمات المرور (مثل طبقات التخزين المؤقت أو البيانات المشتقة من مخرجات دالة التجزئة) حيث يمكن العثور بسهولة أكبر على هذه الخوارزميات المعروفة بعدم أمانها، والأقل شهرة، وخوارزميات التجزئة الزائفة."

النص الصريح

بالنسبة إلى النص الصريح، تُستخدم حيل تحويل متنوعة. كلمة المرور الأولى تطابق الثانية فقط. الحيل مُجمّعة حسب إصدارات PHP التي تتيحها.

bcrypt

bcrypt يقتطع كلمات المرور إلى طول أقصى يبلغ 72 حرفًا. تتطابق كلمتا المرور إذا تطابق أول 72 حرفًا من كلا الكلمتين.

descrypt

descrypt (نظام التشفير DES التقليدي في UNIX) يقتطع كلمات المرور إلى طول أقصى يبلغ 8 أحرف. تتطابق كلمتا المرور أيضًا إذا تطابق أول 8 أحرف من كلا الكلمتين، انظر قسم "التحقق المتبادل العام".

PBKDF2-HMAC-SHA1، PBKDF2-HMAC-SHA224، PBKDF2-HMAC-SHA256

إذا استخدمت كلمة مرور أطول من 64 بايتًا وقمت بتجزئتها باستخدام PBKDF2-HMAC-SHA1، فإنها تُجزأ أولاً مسبقًا باستخدام SHA1، لذا PBKDF2-HMAC-SHA1(password1) === PBKDF2-HMAC-SHA1(password2) لأن sha1(password1) === bin2hex(password2). يُطبَّق التجزئة المسبقة المماثلة في حالة PBKDF2-HMAC-SHA224 وPBKDF2-HMAC-SHA256.

Tiger/192,3

في الوقت الحالي يوجد تجزئة سحرية واحدة فقط في كل منها بفضل Norbert Tihanyi، ونأمل أن يُضاف المزيد في المستقبل.

الخلاصة

استخدم === عند مقارنة أي شيء* في PHP، وليس ==. واستخدم password_hash() وpassword_verify() لتجزئة كلمات المرور في PHP، ولا تستخدم MD5 أو SHA-1. *استخدم hash_equals() عند مقارنة التجزئات.

التاريخ

بدأ كل شيء بهذه التغريدة، حيث ولّدتُ QNKCDZO و240610708 في فبراير 2014، ومنذ ذلك الحين انتشر الأمر في كل مكان. فقط ابحث عنه في Google.

  • MD5: تغريدة، الكود، مساهمات من roycewilliams، Norbert Tihanyi، ethernetlord، 0xb0bb، myst404
  • MD5-double: الكود، مساهمات من TheMostKnown
  • SHA-1: تغريدة، الكود، مساهمات من roycewilliams، 0xb0bb، matlink، myst404، Maxim Masiutin
  • النص الصريح: تغريدة، الكود
  • bcrypt: الكود
  • PBKDF2-HMAC-SHA1 بواسطة Christian "CodesInChaos" Winnerlein، كما شرحه Mathias Bynens، الكود
  • PBKDF2-HMAC-SHA224 بواسطة Norbert Tihanyi، الكود
  • PBKDF2-HMAC-SHA256 بواسطة Jens 'atom' Steube، الكود
  • Tiger/192,3 بواسطة Norbert Tihanyi
  • SHA-224 بواسطة Norbert Tihanyi، hops، 0xb0bb، myst404، Maxim Masiutin
  • SHA-256 بواسطة Norbert Tihanyi، Chick3nman، roycewilliams، matlink
  • 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، RIPEMD-128، RIPEMD-160، Tiger/128,3، Tiger/128,4، Tiger/160,3، Tiger/160,4 بواسطة 0xb0bb
  • descrypt بواسطة James M. Hall، hops
  • PHOTON-80/20/16، PHOTON-128/16/16، PHOTON-160/36/36 بواسطة Norbert Tihanyi & Bertalan Borsos
  • u-Quark-136 بواسطة Norbert Tihanyi & Bertalan Borsos
  • SPONGENT-88/80/8، SPONGENT-88/176/88، SPONGENT-128/128/8، SPONGENT-128/256/128 بواسطة Norbert Tihanyi & Bertalan Borsos
  • xxHash بواسطتي (#27)
  • MurmurHash3 بواسطتي (#28)

كيف تحسب تجزئاتك السحرية بنفسك

استخدمت حاسوبي المحمول، وبضعة حلقات for (أو foreach؟)، والعديد من دورات المعالجة، ومروحة خارجية في عام 2014، لكن يمكنك/يجب عليك اليوم استخدام وحدة معالجة رسومية ونسخة معدّلة من hashcat لهذا الغرض. انظر هذا الشرح من إعداد Carl Löndahl و0xb0bb.

Chick3nman وفريقه يعملون أيضًا على نسختهم من hashcat، ترقبوا.

تصادمات حقيقية

MD5

إذا كنت بحاجة إلى تصادم حقيقي أبجدي رقمي، فإليك تصادم MD5 أبجدي رقمي بطول 72 بايت بفارق 1 بايت، بل حتى 1 بت، من إعداد Marc Stevens:

root@kitploit:~
md5("TEXTCOLLBYfGiJUETHQ4hAcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak")
=
md5("TEXTCOLLBYfGiJUETHQ4hEcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak")

لاحظ أنه إذا سجّلت بكلمة المرور الأولى وسجّلت الدخول بالثانية، فقد لا يزال ذلك يعني أن الموقع يستخدم bcrypt(md5($password)) وليس فقط md5($password). يُستخدم هذا التغليف حول التجزئة أحيانًا عند ترقية تجزئة كلمات المرور لكن يجب استخدامه مؤقتًا فقط.

انظر مشروع HashClash الخاص بـ Marc إذا كنت مهتمًا بهذه التصادمات الحقيقية أو إذا كنت ترغب في إنشاء تصادم خاص بك.

LM

تصادمات LM حقيقية من @solardiz (#35، شكرًا!):

  • نصف تجزئة LM: plaintext1 أو plaintext2
  • db82323cb0693862: 2275490 أو 0/*LUZ@
  • 44b3b60db75c15c1: 2716388 أو 1}DC<XT
  • 585e239d32df1998: 8351762 أو $;)5D|X

انظر التغريدة لمعرفة كيفية توليد المزيد.

تنزيل الأداة