UUID (Universally Unique Identifier) भनेको computer systems मा information uniquely identify गर्न प्रयोग हुने १२८-bit value हो — central authority बिना नै। राम्रोसँग generate गरिएको UUID सांख्यिकीय रूपमा सारा space र time मा unique हुन्छ, जसले यसलाई distributed systems, database primary keys, REST APIs, र session management को backbone बनाउँछ। यदि तपाईंले 550e8400-e29b-41d4-a716-446655440000 जस्तो string कहिलै देख्नुभएको छ भने, त्यो UUID नै हो।
यो गाइडमा developers का लागि आवश्यक सबै कुरा छ: पाँच UUID versions (v1 देखि v7 सम्म), structure कसरी पढ्ने, collision probability को math, database मा UUID vs auto-increment, GUID vs UUID naming, र हरेक use case का लागि सही version — अन्तमा निःशुल्क UUID generator पनि छ।
UUIDs तुरुन्त Generate गर्नुहोस् — निःशुल्क
Browser मा नै single वा bulk UUIDs (v1, v4, v7) बनाउनुहोस्। कुनै server call छैन, signup छैन। Copy, download, वा सिधै code मा प्रयोग गर्नुहोस्।
UUID के हो? Structure र Format सम्पूर्ण जानकारी
UUID भनेको १२८-bit identifier हो जुन hyphen ले छुट्याइएका पाँच hexadecimal digits को समूहमा देखाइन्छ — 8-4-4-4-12 pattern मा (३२ hex chars + ४ hyphens = ३६ characters कुल):
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
│ │ │ │ │
│ │ │ │ └─ 12 hex digits (node / random)
│ │ │ └────── 4 hex digits (variant + random)
│ │ └─────────── 4 hex digits (version M + random)
│ └──────────────── 4 hex digits (time mid / random)
└───────────────────────── 8 hex digits (time low / random)
दुई विशेष nibbles
- Version nibble (M): तेस्रो group को पहिलो digit। Values: 1, 2, 3, 4, 5, 6, 7 — कुन UUID version हो भन्छ।
- Variant nibble (N): चौथो group को पहिलो digit। RFC 4122 UUIDs का लागि यो सधैं 8, 9, a, वा b हुन्छ।
Example breakdown
550e8400-e29b-41d4-a716-446655440000
↑ ↑
version=4 variant=a (RFC 4122)
Nil UUID
Nil UUID भनेको सबै १२८ bits शून्य भएको विशेष UUID हो: 00000000-0000-0000-0000-000000000000। यसलाई sentinel वा placeholder value को रूपमा प्रयोग गरिन्छ — SQL को NULL जस्तै। केही systems ले यसलाई "UUID assign भएको छैन" भनेर देखाउन प्रयोग गर्छन्।
UUID v1 vs v4 vs v5 vs v7 — सम्पूर्ण तुलना
पाँच standardised UUID versions छन्। हरेक version ले १२८ bits मा फरक-फरक information encode गर्छ। यो पूरा तुलना हेर्नुहोस्:
| Version | Algorithm | Sortable? | Private? | Best Use Case |
|---|---|---|---|---|
| v1 | MAC address + timestamp (100-ns precision) | Partially (time-ordered) | No — MAC & time leak गर्छ | Distributed event logging (legacy) |
| v3 | MD5 hash of namespace + name | No | Yes | Deterministic IDs from names (legacy) |
| v4 | 122 bits of cryptographic random | No | Yes | General purpose — सबैभन्दा common |
| v5 | SHA-1 hash of namespace + name | No | Yes | Deterministic IDs (v3 भन्दा v5 prefer गर्नुहोस्) |
| v7 | Unix timestamp (ms) + random bits | Yes (monotonic) | Yes | Database PKs — sortable + index-friendly |
UUID v1 — Time + MAC
UUID v1 ले 60-bit timestamp (Oct 15, 1582 देखि 100-nanosecond intervals मा) र generating machine को MAC address encode गर्छ। technically sortable भए पनि, v1 ले machine को MAC address expose गर्छ — privacy concern। B-tree indexes मा पनि "hot spots" बनाउँछ। नयाँ projects मा avoid गर्नुहोस्।
UUID v4 — Pure Random
UUID v4 ले 122 random bits प्रयोग गर्छ। यो सबैभन्दा widely used UUID version हो। कुनै coordination चाहिँदैन, completely private, र हरेक भाषाको UUID library ले support गर्छ। एउटै कमजोरी: sortable छैन, जसले database मा B-tree index fragmentation गर्न सक्छ।
UUID v5 — Namespaced SHA-1
UUID v5 ले SHA-1 प्रयोग गरेर namespace UUID + name string बाट deterministically UUID generate गर्छ। एउटै input दिँदा सधैं एउटै UUID आउँछ। एउटै real-world entity (जस्तै user email "alice@example.com") को लागि stable identifier चाहिँदा use गर्नुहोस्।
UUID v7 — Database को लागि Modern Choice
UUID v7 (RFC 9562, 2024) ले पहिलो 48 bits मा Unix timestamp (milliseconds) encode गर्छ। timestamp high bits मा भएकाले v7 UUIDs chronologically sort हुन्छन् — v4 को index fragmentation problem solve हुन्छ। Database primary keys को लागि UUID v7 अहिलेको recommended choice हो।
UUID Collision Probability — गणित बुझ्नुहोस्
UUIDs बारे सबैभन्दा सामान्य प्रश्न: "के दुई UUID एउटै हुन सक्छ?" technically हो, तर probability अत्यन्त न्यून छ।
UUID v4 collision math
UUID v4 ले 122 random bits प्रयोग गर्छ, जसले 2122 ≈ 5.3 × 1036 possible values दिन्छ। Birthday problem approximation प्रयोग गर्दा:
P(collision) ≈ n² / (2 × 2^122)
50% collision probability पाउन n UUIDs चाहिन्छ:
n ≈ 2.71 quintillion (2.71 × 10^18)
व्यावहारिक रूपमा: यदि तपाईंले प्रति सेकेन्ड १ billion UUIDs generate गर्नुभयो भने, एउटा मात्र collision को ५०% chance पाउन लगभग ८५ वर्ष लाग्छ। cryptographically secure random number generator प्रयोग गरेमा UUID collision वास्तविक engineering concern होइन।
CSPRNG requirement
यो guarantee तब मात्र valid छ जब Cryptographically Secure Pseudo-Random Number Generator (CSPRNG) प्रयोग गरिएको छ। JavaScript को crypto.randomUUID(), Python को uuid.uuid4(), र Java को UUID.randomUUID() — सबैले CSPRNG प्रयोग गर्छन्। Math.random()-based UUID generators avoid गर्नुहोस्।
यदि तपाईंको system छोटो समयमा tens of billions UUIDs generate गर्छ भने, UUID v7 मा switch गर्नुहोस् — यसमा monotonic random bits को sequence counter ले additional collision resistance दिन्छ।
Database मा UUID: MySQL, PostgreSQL — UUID vs Auto-Increment
UUID लाई database primary key रूपमा प्रयोग गर्नु एक debated architectural decision हो। MySQL र PostgreSQL का लागि honest analysis:
UUID vs Auto-Increment: Trade-offs
| Factor | UUID (v4) | UUID (v7) | Auto-Increment INT |
|---|---|---|---|
| Uniqueness scope | Global | Global | Per-table मात्र |
| Index fragmentation | High (random inserts) | Low (monotonic) | None (sequential) |
| Insert performance | INT भन्दा ~20–40% slow | INT जत्तिकै | Fastest |
| Storage | 16 bytes (binary) / 36 bytes (text) | 16 bytes | 4 bytes (INT) / 8 bytes (BIGINT) |
| Merge / replication | No conflicts | No conflicts | Coordination बिना conflicts |
| Security | Record count expose गर्दैन | Record count expose गर्दैन | URL मा record count देखिन्छ |
| Offline generation | Yes — DB roundtrip चाहिँदैन | Yes | No — DB चाहिन्छ |
MySQL recommendations
MySQL (InnoDB) मा primary key नै clustered index हो। Random UUID v4 PK को रूपमा प्रयोग गर्दा severe index fragmentation हुन्छ। ठूला tables (10M+ rows) मा insert performance significantly घट्छ। UUID v7 वा UUID_TO_BIN(uuid, 1) function प्रयोग गर्नुहोस्। VARCHAR(36) होइन — BINARY(16) मा store गर्नुहोस्।
PostgreSQL recommendations
PostgreSQL मा native UUID type छ (16 bytes)। v4 को लागि gen_random_uuid() (PostgreSQL 13 देखि built-in) वा v7 को लागि pg_uuidv7 extension प्रयोग गर्नुहोस्। PostgreSQL 17+ मा UUIDv7 native support छ।
Rule of thumb
- Single-server app, < 10M rows: Auto-increment BIGINT सरल र ठीक
- Distributed system / microservices: UUID v7 (सबैभन्दा balanced)
- URLs/APIs मा IDs expose: UUID v4 (opaque) वा UUID v7 (sortable)
- Deterministic IDs चाहिन्छ: UUID v5
GUID vs UUID — के यी एउटै हुन्?
छोटो उत्तर: हो, GUID र UUID essentially एउटै हो। यहाँ distinction छ:
| Term | Stands For | Origin | Format |
|---|---|---|---|
| UUID | Universally Unique Identifier | Open Group / RFC 4122 | xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx |
| GUID | Globally Unique Identifier | Microsoft (COM/ActiveX) | {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} |
Microsoft को GUID UUID को variant हो। मुख्य फरक cosmetic छ: GUIDs प्रायः uppercase र curly braces सहित देखाइन्छ (जस्तै {550E8400-E29B-41D4-A716-446655440000})। .NET मा System.Guid.NewGuid() ले behind the scenes UUID v4 generate गर्छ। Microsoft र non-Microsoft systems बीच interoperating गर्दा braces हटाएर lowercase गर्नुहोस्।
SQL Server मा GUID
SQL Server ले GUIDs को लागि UNIQUEIDENTIFIER data type प्रयोग गर्छ। NEWID() ले random GUID (UUID v4) generate गर्छ। NEWSEQUENTIALID() ले clustered index performance को लागि optimised sequential GUIDs generate गर्छ — यो UUID v7 को SQL Server equivalent हो। SQL Server मा clustered index primary keys को लागि सधैं NEWSEQUENTIALID() prefer गर्नुहोस्।
UUID Regex Pattern र Validation
Application मा UUID validate गर्न regular expression सजिलो छ:
Standard UUID regex (case-insensitive)
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
यो pattern validate गर्छ:
- 8-4-4-4-12 structure with hyphens
- Version digit: 1–7 (valid UUID versions)
- Variant bits: 8, 9, a, b (RFC 4122 variant)
Version-specific validation
// UUID v4 मात्र
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
// UUID v7 मात्र
/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
Code मा UUIDs generate गर्ने
// JavaScript (browser + Node 15+)
crypto.randomUUID() // UUID v4, CSPRNG-backed
// Python
import uuid
uuid.uuid4() # v4 random
uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com') # v5 deterministic
// Java
UUID.randomUUID() // v4
// Go
import "github.com/google/uuid"
uuid.New() // v4
एउटा वा धेरै UUIDs तुरुन्त चाहिन्छ? ToolsArena को UUID Generator ले browser मा नै bulk UUIDs (v1, v4, v7) बनाउँछ — server मा data जाँदैन।
How to Use the Tool (Step by Step)
- 1
UUID Generator खोल्नुहोस्
ToolsArena को UUID Generator मा जानुहोस् — account चाहिँदैन, install गर्नु पर्दैन, कुनै पनि browser मा काम गर्छ।
- 2
UUID version छान्नुहोस्
General-purpose random UUID को लागि v4, database primary keys (sortable) को लागि v7, वा timestamp-based identifiers को लागि v1 छान्नुहोस्।
- 3
Quantity set गर्नुहोस्
कति UUIDs चाहिन्छ enter गर्नुहोस् — एउटादेखि १०,००० सम्म एकैचोटि generate गर्न सकिन्छ।
- 4
Copy वा download गर्नुहोस्
Copy All click गरेर clipboard मा copy गर्नुहोस्, वा ठूलो batch को लागि .txt file download गर्नुहोस्। प्रत्येक UUID नयाँ line मा हुन्छ — code वा spreadsheet मा paste गर्न ready।
Frequently Asked Questions
UUID भनेको के हो?+−
UUID भनेको Universally Unique Identifier हो। यो RFC 4122 (अहिले RFC 9562 ले supersede गरेको) मा specified १२८-bit value हो जुन central authority बिना नै computer systems मा information uniquely identify गर्न प्रयोग हुन्छ।
UUID v4 र UUID v7 मा के फरक छ?+−
UUID v4 ले 122 bits को cryptographic randomness प्रयोग गर्छ — completely random र ordering छैन। UUID v7 ले पहिलो 48 bits मा Unix timestamp (milliseconds) encode गर्छ, जसले UUIDs लाई creation time अनुसार sort गर्न मिल्छ। Database primary keys को लागि UUID v7 preferred छ किनकि यसले v4 को B-tree index fragmentation problem solve गर्छ।
के दुई UUID कहिलै एउटै हुन सक्छ?+−
Technically हो, तर probability negligible छ। UUID v4 (122 random bits) मा, एउटा collision को 50% chance पाउन लगभग 2.71 quintillion UUIDs generate गर्नु पर्छ। Cryptographically secure random number generator (जुन सबै standard UUID libraries प्रयोग गर्छन्) प्रयोग गर्दा collisions practical concern होइन।
GUID र UUID एउटै हो?+−
हो, essentially। GUID (Globally Unique Identifier) Microsoft को UUID implementation हो। GUIDs प्रायः uppercase र curly braces सहित देखाइन्छ — जस्तै {550E8400-E29B-41D4-A716-446655440000} — तर standard UUIDs जस्तै नै 128-bit format प्रयोग गर्छ। .NET को System.Guid ले UUID v4 values generate गर्छ।
Database primary key का लागि UUID वा auto-increment?+−
Single-server applications को लागि, auto-increment BIGINT सरल र छिटो छ। Distributed systems, microservices, वा database round-trip बिना client-side IDs generate गर्न परेमा UUID v7 प्रयोग गर्नुहोस्। ठूला tables मा UUID v4 primary key avoid गर्नुहोस् — यसको random ordering ले index fragmentation र slow inserts निम्त्याउँछ।
Nil UUID के हो?+−
Nil UUID भनेको 00000000-0000-0000-0000-000000000000 हो — सबै 128 bits शून्य। यसलाई "UUID assign भएको छैन" भन्ने sentinel value को रूपमा प्रयोग गरिन्छ, SQL को NULL जस्तै।
UUIDs तुरुन्त Generate गर्नुहोस् — निःशुल्क
Browser मा नै single वा bulk UUIDs (v1, v4, v7) बनाउनुहोस्। कुनै server call छैन, signup छैन। Copy, download, वा सिधै code मा प्रयोग गर्नुहोस्।
UUID Generator खोल्नुहोस् →Related Guides
Hash Generator — MD5, SHA-256 Nepali Guide (2026)
MD5, SHA-256 hashes generate गर्नुहोस् — hashing बुझ्नुहोस्, file verify गर्नुहोस्।
बलियो पासवर्ड बनाउनुहोस् — Nepal Cyber Security Guide 2026
eSewa, Khalti, FonePay account hack हुनबाट जोगाउनुस् — complete password guide।
Base64 Encode/Decode गाइड
Base64 encoding र decoding — API development, data transmission, image embedding सबैका लागि।