ما هو UUID؟ شرح معرف فريد عالمياً
Quick Answer
UUID = 128 بت، 36 حرفاً (32 hex + 4 واصلات). v4 عشوائي، احتمال التضارب ≈ 0. استخدم crypto.randomUUID() أو مولّد UUID المجاني — يولّد v4 في متصفحك.
Introduction
UUID (معرف فريد عالمياً) هو رقم 128 بت يُمثل كـ 8-4-4-4-12 سداسي عشري. احتمال تضارب اثنين من UUID v4 العشوائية هو 1 في 2^122 — عملياً صفر. مدعوم في جميع لغات البرمجة. crypto.randomUUID() متاح في المتصفحات الحديثة.
Step by Step
-
Understand UUID structure
A UUID is 128 bits, displayed as 32 hexadecimal digits in 5 groups: 8-4-4-4-12, separated by hyphens (e.g., 550e8400-e29b-41d4-a716-446655440000). The 13th digit indicates the version (4 for v4), and the 17th digit indicates the variant.
-
Learn the UUID versions
v1: time-based (timestamp + MAC address) — time-ordered but leaks identity. v3: name-based with MD5 hashing. v4: random — most common, no privacy concerns. v5: name-based with SHA-1 hashing. v6 and v7: time-ordered with improved privacy over v1.
-
Understand collision probability
UUID v4 has 2^122 possible values. The probability of a collision among 103 trillion UUIDs is 50%. For practical use (millions of IDs), the collision probability is effectively zero — you can generate UUIDs independently without coordination.
-
Use UUIDs appropriately
Use v4 for almost all use cases (database IDs, request IDs, session tokens). Use v7 if you need time-ordered IDs for database locality. Avoid v1 in security-sensitive contexts — it embeds a timestamp and MAC address.
Examples
UUID v4 (random)
Input: Generated with crypto.getRandomValues
Output: 550e8400-e29b-41d4-a716-446655440000
UUID v1 (time-based)
Input: Timestamp + MAC address
Output: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1
Nil UUID
Input: All zeros
Output: 00000000-0000-0000-0000-000000000000
Common Problems
- Using Math.random() for UUIDs —it is not cryptographically secure. Use crypto.getRandomValues() or crypto.randomUUID() in browsers.
- Storing UUIDs as strings —a UUID string is 36 bytes; stored as a UUID type (16 bytes) it is more efficient. Use the native UUID type in databases when available.
- Using v1 in security-sensitive contexts —v1 embeds a timestamp and MAC address, which can leak information about when and where it was generated. Use v4 for anonymity.
- Assuming UUIDs are truly unique —they are practically unique (collision probability is negligible), but not mathematically guaranteed unique.
Tips
- Use UUID v4 for almost all use cases —it is random, has no privacy concerns, and is supported by all modern databases.
- Use crypto.randomUUID() in modern browsers for a built-in v4 generator without a library.
- Store UUIDs as UUID/GUID type in databases (16 bytes) instead of strings (36 bytes) for better storage and index performance.
- Use our UUID Generator to create UUIDs instantly in your browser —no signup, fully private.