تقنية

BLAKE2b في بايثون: هل الأقصر بداية الأطول؟

كائنان BLAKE2b للمدخل leaf بطولين مختلفين
الطول في التهيئة. [1] [2]

حدّد الطول عند الإنشاء. [1] [2]

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

ليس هذا تعريف البصمة الأقصر؛ في المثال لا تتطابق البادئتان. [1] [2]

  • المدخل نفسه leaf؛ أنشأنا كائنين بـBLAKE2b. [1] [2]
  • ضبطنا digest_size على 6 ثم 10 بايتات. [1] [2]
  • الأطوال 6 10؛ مقارنة الأقصر بأول ستة تعطي False. [1] [2]
  • الطول يدخل في ضبط التهيئة، قبل إخراج البصمة. [1] [2]
  • اختبرنا 3.12.14؛ لا تقييم للأمان أو الأداء. [1] [2]

المثال

from hashlib import blake2b as h
a=h(b"leaf",digest_size=6).digest()
b=h(b"leaf",digest_size=10).digest()
print(len(a),len(b))
print(a==b[:6])

[1] [2]

التهيئة والقص

المصدر يحفظ الطول في المعاملات قبل تهيئة الحالة. ضبط digest_size عند الإنشاء يختلف عن قص مخرج كائن آخر. [1] [2]

البصمة ذات ستة بايتات تختلف عن بادئة الأطول في المثال
المقارنة False هنا. [1] [2]

نطاق المقارنة

الوثائق تميز نواتج الأحجام المختلفة. نتيجة المثال لا تثبت استحالة تطابق بادئة مصادفة، ولا تفرد البصمات. مثالنا بيانات مؤلفة بلا مفاتيح أو ملفات. [1] [2]

المراجع

  1. Python 3.12: BLAKE2 digest sizes
  2. CPython 3.12.14: BLAKE2b constructor
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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

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