مولّد GUID
ولّد GUID من Microsoft بصيغ .NET: أقواس {B} وD وN وP وبنية X الست عشرية وسجل Windows وC# new Guid("…") وترتيب بايتات Base64. بالجملة وبأحرف كبيرة.
حتى 1000
GUID هو اسم مايكروسوفت لمعرّف UUID. هذه قيم عشوائية من الإصدار 4 مولّدة بـ crypto.getRandomValues.
ما هو مولّد GUID؟
GUID هو اسم Microsoft لـ UUID: معرّف من 128 بت يُستخدم في Windows و.NET وCOM وSQL Server ومشاريع Visual Studio. تولّد هذه الأداة GUID عشوائية من الإصدار 4 وتطبعها بالصيغ التي تتوقعها أدوات Microsoft، ومنها محددات الصيغة في Guid.ToString() بـ .NET وأسلوب سجل Windows.
كيفية استخدام مولّد GUID
- اختر التنسيق، مثل أقواس معقوفة {…} (B) لـ Visual Studio أو Windows Registry لملفات
.reg. - حدّد العدد المطلوب من GUID وبدّل أحرف كبيرة.
- اضغط إعادة الإنشاء لدفعة جديدة وانسخ القائمة أو نزّلها.
مثال
Format Braces {…} (B), Uppercase, How many 1 {E17C75C3-AEFF-475C-B725-FA19A83F612B} يكون GUID نفسه بصيغة X هو {0xE17C75C3,0xAEFF,0x475C,{0xB7,0x25,0xFA,0x19,0xA8,0x3F,0x61,0x2B}} وبصيغة Base64 في .NET هو w3V84f+uXEe3JfoZqD9hKw==. ستختلف قيمك.
متى تستخدم مولّد GUID
استخدمه حين تحتاج GUID جديدًا لمشروع Visual Studio أو فئة COM أو مثبّت WiX أو مفتاح سجل أو uniqueidentifier في SQL Server أو كود C#. وللأنظمة غير التابعة لـ Microsoft أو المفاتيح المرتبة زمنيًا (v7) استخدم مولّد UUID.
كيف يعمل مولّد GUID
كل GUID هو UUID عشوائي من الإصدار 4 وفق RFC 9562 (122 بتًّا عشوائيًا من crypto.getRandomValues). وتتبع الصيغ Guid.ToString(format) في .NET: D xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx، وN 32 رقمًا، وB بين أقواس معقوفة، وP بين أقواس دائرية، وX بصيغة {0x…,0x…,0x…,{0x..,…}}. وصيغة السجل أحرف كبيرة بين أقواس معقوفة. ويرمّز Base64 (.NET ToByteArray) البايتات بترتيب Microsoft المختلط (mixed-endian): المجموعات الثلاث الأولى (Data1 وData2 وData3) little-endian، وتبقى البايتات الثمانية الأخيرة دون تغيير — وهي البايتات نفسها التي يخزّنها SQL Server في uniqueidentifier.
حالات الاستخدام الشائعة
- إنشاء ProjectGuid أو CLSID لـ COM
- كتابة ملف .reg لسجل Windows بمفتاح جديد
- تعبئة أعمدة uniqueidentifier في بيانات اختبار SQL Server
- لصق new Guid("…") جاهزًا في كود C#
الأسئلة الشائعة
ما الفرق بين GUID وUUID؟
لا فرق في البنية: كلاهما معرّف من 128 بت. GUID هو مصطلح Microsoft؛ ولا يختلف ترتيب البايتات إلا عند تخزين القيمة كبايتات خام (Guid.ToByteArray).
لماذا لا يطابق ناتج Base64 الأرقام الست عشرية؟
يخزّن .NET المجموعات الثلاث الأولى بترتيب little-endian، فتُعاد ترتيب البايتات قبل ترميز Base64. وهذا يطابق ما تُرجعه Convert.ToBase64String(guid.ToByteArray()).
هل GUID حساس لحالة الأحرف؟
لا. يعامل Windows و.NET الأرقام الست عشرية الكبيرة والصغيرة كـ GUID نفسه؛ ويستخدم السجل الأحرف الكبيرة عرفًا.