مولّد UUID v4
أنشئ معرّفات UUID عشوائية من النسخة 4 عبر مولّد الأرقام العشوائية الآمن في متصفحك، واحدًا تلو الآخر أو بالجملة.
توليد معرّفات UUID عشوائية من النسخة 4
النسخة 4 هي ما يقصده معظم الناس حين يقولون «UUID». فهي لا تحمل ختمًا زمنيًا ولا عنوان جهاز ولا اسمًا، بل 122 بت عشوائية فقط، وهذا يجعل توليدها سهلًا في أي مكان دون تنسيق: في متصفح، أو على هاتف، أو على ألف خادم في آن واحد.
تفتح هذه الصفحة مولّد UUID مع اختيار النسخة 4 وتوليد أول معرّف مسبقًا.
تشريح معرّف UUID v4
خذ المعرّف f47ac10b-58cc-4372-a567-0e02b2c3d479. الرقم 4 الذي تبدأ به المجموعة الثالثة هو النسخة. والخانة الأولى من المجموعة الرابعة، وهي هنا a، تكون دائمًا 8 أو 9 أو a أو b، لأن أعلى بتّين فيها يحملان النمط. وكل خانة ست عشرية أخرى عشوائية.
ما مدى ندرة التكرار؟
| عدد المعرّفات المولَّدة | احتمال ظهور أي تكرار |
|---|---|
| مليار واحد (10^9) | نحو 1 من كل 10 كوينتيليونات |
| تريليون واحد (10^12) | نحو 1 من كل 10 تريليونات |
| 2.7 كوينتيليون (2.7 × 10^18) | نحو 50% |
تفترض هذه الأرقام مصدرًا عشوائيًا جيدًا. ولهذا يستخدم هذا المولّد crypto.getRandomValues بدلًا من Math.random، التي لم تُصمَّم لضمان التفرّد.
v4 أم v7؟
تبعثر المعرّفات العشوائية الصفوف الجديدة في أرجاء فهرس قاعدة البيانات، وقد يبطئ ذلك عمليات الإدراج في الجداول الضخمة جدًا. فإن كانت معرّفاتك مفاتيح أساسية في قاعدة بيانات كثيفة الاستخدام، ففكّر في UUID v7 الذي يبدأ بختم زمني فتُرتَّب القيم الجديدة تباعًا. أما للرموز ومعرّفات الربط (correlation IDs) وأسماء الملفات، فتبقى v4 الخيار الافتراضي البسيط.
توليد v4 برمجيًا
- JavaScript:
crypto.randomUUID() - Python:
import uuid; uuid.uuid4() - Java:
UUID.randomUUID() - C#:
Guid.NewGuid() - PostgreSQL 13+:
gen_random_uuid() - طرفية Linux:
cat /proc/sys/kernel/random/uuid
إن كانت منصتك تسمّيها GUID وتريدها بأقواس معقوفة أو بحروف كبيرة، فصفحة مولّد GUID تفعّل هذه الخيارات مسبقًا.