تقنية

uuid5 في بايثون: هل يتغير المعرّف مع الاسم والنطاق نفسيهما؟

NAMESPACE_DNS; bud.example; own==repeat: True.
قيمتان متساويتان.

uuid5 تستخدم SHA-1 للاسم ومعرّف النطاق؛ تكرار المدخلين يعطي قيمة المعرّف نفسها. [1] [2]

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

لا؛ النداءان يعطيان قيمتين متساويتين. [1] [2]

  • uuid5 تستخدم SHA-1 للاسم ومعرّف النطاق؛ تكرار المدخلين يعطي قيمة المعرّف نفسها. [1] [2]
  • على CPython 3.12.14، نستخدم NAMESPACE_DNS والاسم bud.example؛ own وrepeat ناتجا نداءين بالمدخلين نفسيهما. [1] [2]
  • own==repeat تعطي True؛ المقارنة للقيم، والتكرار لا يغير الناتج هنا. [1] [2]
  • تحكم: control تستخدم NAMESPACE_DNS نفسه مع leaf.example؛ own==control تعطي False في هذا الزوج. تغير الاسم وحده في النداء. [1] [2]
  • إصدار النتائج الثلاث 5. نختبر اسمين من ASCII ونطاق DNS القياسي، دون منشئ UUID أو توليد عشوائي. [1] [2]

مدخلان للحساب

uuid5 تستخدم SHA-1 للاسم ومعرّف النطاق؛ تكرار المدخلين يعطي قيمة المعرّف نفسها. [1] [2]

نداءان متطابقان

على CPython 3.12.14، نستخدم NAMESPACE_DNS والاسم bud.example؛ own وrepeat ناتجا نداءين بالمدخلين نفسيهما. [1] [2]

مقارنة التكرار

own==repeat تعطي True؛ المقارنة للقيم، والتكرار لا يغير الناتج هنا. [1] [2]

from uuid import uuid5,NAMESPACE_DNS own=uuid5(NAMESPACE_DNS,"bud.example") repeat=uuid5(NAMESPACE_DNS,"bud.example") print(own==repeat) [1] [2]

NAMESPACE_DNS; bud.example vs leaf.example; own==control: False.
قيمتان مختلفتان هنا.

تغيير الاسم والتحكم

تحكم: control تستخدم NAMESPACE_DNS نفسه مع leaf.example؛ own==control تعطي False في هذا الزوج. تغير الاسم وحده في النداء. [1] [2]

control=uuid5(NAMESPACE_DNS,"leaf.example") print(own==control) print(own.version,repeat.version,control.version) [1] [2]

إصدار النتائج الثلاث 5. نختبر اسمين من ASCII ونطاق DNS القياسي، دون منشئ UUID أو توليد عشوائي. [1] [2]

المراجع

  1. Python uuid5 and DNS namespace
  2. CPython 3.12.14 uuid5

للتوسع: لغات البرمجة.

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