العربية

أدوات المطور · مولد UUID

قراءة UUID يدويًا: حيث يعيش الإصدار والبتات المتغيرة

· كيف يعمل

uuid التشفير متصفح API

سلسلة UUID مع مفتاح الإصدار (الموضع 14) وحقل متغير (الموضع 19) مميز لإظهار الأحرف السداسية التي تكشف عن نوع المعرف
الرسم التوضيحي المتجه الأصلي ToolAcre

يخبرك حرفان سداسي عشريان في كل UUID بالإصدار الذي أنتجه والتخطيط المتغير الذي يتبعه. تعلم كيفية قراءتها بنظرة سريعة ومعرفة ما لا يمكنهم إخبارك به.

ما هو النظام الذي صنع هذا المعرف؟ - سؤال الطب الشرعي للسجل الذي يمكن للإصدار أن يجيب عليه

تحتوي السلسلة UUID على 36 حرفًا: اثنان وثلاثون رقمًا سداسيًا عشريًا وأربعة واصلات في المواضع 8-4-4-4-12. حرفان في كل UUID - يظهران في الموضعين 14 و19 - يقومان بتشفير البيانات التعريفية: يخبرك حقل الإصدار بالخوارزمية التي أنشأت المعرف، ويخبرك الحقل المتغير بالتخطيط القياسي الذي يتبعه. قراءة هذين الحرفين بدون أدوات هي مهارة الطب الشرعي للسجل: يمكنك اكتشاف UUID في تفريغ قاعدة البيانات أو رسالة خطأ وتعرف على الفور ما إذا كان الطابع الزمني v1 (الذي يسرب وقت الإنشاء)، أو قيمة عشوائية v4 (التي تم إنشاؤها من CSPRNG)، أو أي شيء آخر. يشغل رقم الإصدار البتات 48–51 من UUID، والذي يتم تعيينه إلى الحرف السداسي العشري الأول للمجموعة الثالثة.

تخطيط 128 بت في خمس مجموعات - كيف يقوم 8-4-4-4-12 بتعيين البايتات ولماذا المجموعات تاريخية وليست وظيفية

بالنسبة للسلسلة xxxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx، فإن الحرف الموجود في الموضع 14 هو الإصدار. RFC 9562 يحدد الإصدارات 1 حتى 8: الإصدار 1 يعتمد على الوقت الغريغوري ويتسرب وقت الإنشاء؛ الإصدار 4 عشوائي؛ الإصدار 7 يعتمد على وقت Unix وقابل للفرز. الإصدار 0، 9، والإصدارات الأحدث محجوزة أو غير مستخدمة. إذا رأيت الإصدار 1 UUID، ​​فأنت تعرف أنه تم خلط الوقت وعنوان الجهاز؛ إذا رأيت الإصدار 4، فإن المعرف عبارة عن بايتات عشوائية مع تعيين بتات الإصدار؛ إذا رأيت الإصدار 7، فسيتم فرزه حسب وقت الإنشاء. الإصدار ليس اختياريًا؛ كل UUID مكون بشكل صحيح لديه واحد. يشغل الحقل المتغير البتات 64–65 من UUID، وهما البتتان الأكثر أهمية في الثماني 8.

الإصدار عاب - الحرف الأول من المجموعة الثالثة، ماذا يعني 1 إلى 8، وما يشير إليه 0 أو 9 هناك

في تمثيل النص xxxxxxxx-xxxx-xxxx-Nxxx-xxxxxxxxxxxx، يقوم الحرف الأول من المجموعة الرابعة (الموضع 19) بترميز المتغير. بالنسبة لمتغير RFC 9562 (المعيار في الاستخدام الحديث)، يجب أن يكون هذا الحرف 8، 9، a، أو b — التمثيلات السداسية العشرية لـ 1000، 1001، 1010، و 1011 في الملف الثنائي. يشير أي حرف آخر (0–7، c–f) إلى متغير مختلف: 0–7 هي NCS متوافقة مع الإصدارات السابقة؛ c–d عبارة عن معرفات GUID قديمة لـ Microsoft بترتيب بايت صغير؛ e–f محجوزة. عندما تقرأ الموضع 19 وترى 8 أو 9 أو a أو b، فإنك تنظر إلى RFC 9562 UUID. أي قيمة أخرى تعني أن البايتات تتبع تفسيرًا مختلفًا. ينقسم تخطيط 128 بت إلى ثمانيات 0–15، ولكن تنسيق النص يفصلها بواسطة مجموعات لسهولة القراءة، وليس الوظيفة.

الحقل المتغير - لماذا الحرف الأول من المجموعة الرابعة هو 8، 9، a أو b لـ RFC UUIDs، وما هي إشارة c/d (تراث Microsoft) أو 0–7 (NCS)

تمثل المجموعات الخمس حدود الحقول التاريخية: تحتوي الحقول الثلاثة الأولى على الطابع الزمني والإصدار في معرفات UUID v1، ويحمل الحقل الرابع تسلسل الساعة ومتغيرها، ويحمل الحقل الخامس معرف العقدة. الإصدار 4 والإصدارات الأحدث UUID لا تستخدم أسماء الحقول هذه، ولكن نفس مواضع البت لا تزال تحمل الإصدار والمتغير. قراءة الإصدار الرابع UUID تعني قبول أن معظم 128 bits عبارة عن حمولة عشوائية، ولكن تم إصلاح اثنتين منها - في المواضع 14 و19 في النص - وفقًا للمعايير. تثبت هذه البتات الثابتة أن المعرف هو الإصدار v4 وRFC. الصفر UUID هو 00000000-0000-0000-0000-000000000000، كلها أصفار، ولا تحمل أي نسخة على الإطلاق. الحد الأقصى UUID هو ffffffff-ffff-ffff-ffff-ffffffffffff، وجميع الأحرف f، كما أنه محجوز وغير مُصدر.

مثال عملي - فك تشفير ثلاثة معرفات نموذجية حرفًا بحرف، بما في ذلك v4 وv7

كل UUID آخر جيد التكوين له إصدار في المجموعة الثالثة ومتغير في المجموعة الرابعة. اختبر نفسك باستخدام ثلاثة نماذج معرفات: 123e4567-e89b-12d3-a456-426614174000 (الإصدار 1، المتغير RFC لأن الموضع 19 هو a)؛ 9b2e4f1a-4f3e-4c1a-8a7d-1b2c3d4e5f60 (الإصدار 4، المتغير RFC لأن الموضع 19 هو 8)؛ 018f0c2e-1b5a-7c3d-9e4f-5a6b7c8d9e0f (الإصدار 7، البديل RFC لأن الموضع 19 هو 9). يؤكد مفتش ToolAcre قراءتك. لا يمكن أن يخبرك فحص التنسيق بأن المعرف فريد أو موجود في قاعدة البيانات الخاصة بك أو تم إنشاؤه بشكل آمن. يستخدم الإصدار v1 الوقت والأجهزة كمدخلات، لذا فإن معرفات UUID المتماثلة للإصدار 1 من أجهزة مختلفة تعني انحراف الساعة أو مشكلات المزامنة. الإصدار v4 عشوائي، لذا فإن النسخة المكررة v4 UUID تعني إما عشوائية منقطعة أو تصادم غير محتمل فلكيًا (تقريبًا واحد لكل 2. 7 تريليون UUID مع عشوائية الصوت).

Nil وMax — القيمتان الكل صفر وكل F اللتان لا تحملان أي نسخة على الإطلاق

الإصدار 0 أو 9 يعني أن السلسلة ليست UUID صالحة على الإطلاق. قراءة الإصدار والمتغير هي الخطوة الأولى في فهم ما هو المعرف؛ التحقق مما إذا كان موجودًا أو فريدًا هو الخطوتين الثانية والثالثة، ويتم ذلك بواسطة قاعدة البيانات ومنطق العمل الخاص بك. يساعد فهم مواضع البت في تصحيح أخطاء عمليات ترحيل البيانات. عند استيراد UUIDs من الأنظمة القديمة، تقوم بعض الأدوات بتصدير حقول متغيرة لا تتطابق مع معيار RFC 9562. يشير الحقل المتغير c أو d إلى Microsoft GUID بترتيب بايت صغير. تعد هذه المعرفات الفريدة العمومية (GUIDs) معرفات صالحة داخل أنظمة Microsoft ولكنها لا تتفاعل مع RFC 9562 UUIDs بدون تحويل ترتيب البايت. يخبرك موضع القراءة 19 على الفور بالنظام الذي أنشأ المعرف. إذا رأيت 8، أو 9، أو a، أو b، فإن لديك معيار RFC UUID.

ما لا يمكن أن يخبرك به فحص التنسيق — أن المعرف موجود في قاعدة البيانات الخاصة بك، أو أنه تم إنشاؤه بشكل آمن، أو أنه فريد

إذا رأيت c أو d، فهذا يعني أن لديك Microsoft GUID. إذا رأيت أي حرف آخر، فهذا يعني أن المعرف مشوه أو من نظام غامض. يقوم المولد ToolAcre دائمًا بإنتاج RFC 9562 UUIDs بالموضع 19 كأحد 8، أو 9، أو a، أو b. يقوم حقل الإصدار ثلاثي البت بترميز سبع قيم محتملة (1–7؛ الإصدار 0 و8 لهما معاني خاصة). الإصدار 1 هو طابع زمني ميلادي، الإصدار 3 هو مساحة اسم مستندة إلى MD5، الإصدار 4 عشوائي، الإصدار 5 هو مساحة اسم مستندة إلى SHA-1، الإصدار 6 هو يستند إلى الطابع الزمني Unix (مقترح)، الإصدار 7 قابل للفرز على أساس الطابع الزمني Unix (موحد في RFC 9562)، الإصدار 8 محجوز للتنسيقات المخصصة. تخبرك قراءة الحرف الموضع-14 على الفور بالخوارزمية المستخدمة. إذا كنت تقوم بتصحيح أخطاء UUID الاصطدامات أو الأنواع غير المتوقعة، فإن رقم الإصدار هو أول دليل لك. ToolAcre يُنشئ v4 UUIDs حصريًا من التشفير.

الخلاصة: حرفان، الكثير من السياق - استخدم ToolAcre التحقق الجيد لتأكيد تحليل السلسلة، ثم اقرأ الإصدار بنفسك

this.getRandomValues; كل UUID يتم إنتاجه له 4 في الموضع 14. يعد تحليل بنية UUID يدويًا مهارة مفيدة لتصحيح أخطاء الأنظمة المعقدة حيث لا تتوفر الأدوات. في إحدى حوادث الإنتاج، قد تحتاج إلى قراءة UUIDs من تفريغ قاعدة البيانات أو سجل الأخطاء أو ذاكرة التخزين المؤقت دون تشغيل أداة خاصة. ابحث عن الموضع 14 لتحديد الإصدار (هل يسرب الوقت؟ هل هو عشوائي؟ هل هو قابل للفرز؟). أنت تبحث عن الموضع 19 لتحديد المتغير (هل هو RFC قياسي؟ هل هو Microsoft GUID؟ هل هو محجوز؟ ). يحمل هذان الحرفان، من إجمالي 36، البيانات التعريفية. الأحرف 34 المتبقية هي حمولة: طابع زمني أو بايت عشوائي أو بيانات أخرى خاصة بالخوارزمية. تساعدك معرفة ما تمثله الحمولة على فهم دور المعرف في نظامك.