تقنية

SHAKE في بايثون: هل طلب بصمة أطول يكمل القراءة السابقة؟

أربعة بايتات معروضة سداسيًا
القصير. [1] [2]

طلب طول آخر لا يقدّم مؤشر قراءة في مثالنا. [1] [2]

الخلاصة السريعة

لا؛ النتيجة الأطول تبدأ بالبايتات نفسها. [1] [2]

  • بدأنا بـ shake_128(b'bud'). [1] [2]
  • طلبنا 4 بايتات، ثم 7 من الكائن نفسه. [1] [2]
  • أول أربعة من النتيجة الثانية تساوي الأولى. [1] [2]
  • إعادة طلب الأربعة تعيدها نفسها. [1] [2]
  • اختبرنا 3.12.14؛ لا تقييم أمان. [1] [2]

المثال

from hashlib import shake_128
h=shake_128(b'bud')
a=h.digest(4)
b=h.digest(7)
print(a==b[:4])
print(h.digest(4)==a)

[1] [2]

الحالة والبادئة

المصدر هنا يحسب ناتج الطول المطلوب من نسخة الحالة. لم نضف بيانات بين الطلبات. يطبع المثال True ثم True؛ لا تعني السبعة أنها سبعة بايتات تالية بعد الأربعة. [1] [2]

سبعة بايتات تبدأ بالبادئة نفسها
الأطول. [1] [2]

القيم والنطاق

نعرض البايتات سداسيًا: 45f989ce ثم 45f989cebf0c8c. تطابقها فحص محلي لمدخل مؤلف؛ لا يثبت هوية ملف أو أمان خوارزمية، ولا نقيس الأداء. [1] [2]

المراجع

  1. Python 3.12: SHAKE variable-length digests
  2. CPython 3.12.14: OpenSSL XOF digest
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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