UUID जनरेटर टूल

UUID (v1, v4, v5, v7) उत्पन्न करें और वैधता जाँचें, बैच जनरेशन और अनेक फॉर्मेटिंग विकल्पों का समर्थन करता है, और बहुभाषी कोड उदाहरण प्रदान करता है।

UUID जनरेटर

फॉर्मेट विकल्प

UUID वैधता जाँचक

उपयोग मार्गदर्शिका

UUID 128-बिट पहचानकर्ता है, जिसे मानक रूप से 36 अक्षरों के रूप में हाइफ़न के साथ दर्शाया जाता है।
UUID v1: समय-टैग और नेटवर्क कार्ड जानकारी पर आधारित, समय के अनुसार क्रमबद्ध, लेकिन समय/स्थान की जानकारी लीक हो सकती है।
UUID v4: यादृच्छिक संख्याओं पर आधारित, सबसे अधिक उपयोग किया जाने वाला, अच्छी अद्वितीयता और गोपनीयता प्रदान करता है।
UUID v7: यूनिक्स मिलीसेकंड समय + यादृच्छिक संख्या पर आधारित, स्वाभाविक रूप से क्रमबद्ध, और v1 की गोपनीयता समस्याओं से मुक्त।
UUID v5: नामांकन अंतराल UUID और नाम पर आधारित, SHA-1 द्वारा गणना की जाती है; समान इनपुट से समान परिणाम प्राप्त होता है।
मानक फॉर्मेट: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (36 अक्षर)।

विशेषताएँ

  • UUID v1, v4, v5, v7 का समर्थन
  • कस्टम संख्या में बैच जनरेशन
  • लचीली फॉर्मेटिंग: बड़े अक्षर, हाइफ़न हटाएँ, ब्रेस जोड़ें
  • अंतर्निहित वैधता जाँचक और संस्करण पहचान
  • पूर्ण अंतर्राष्ट्रीयकरण और बहु-थीम समर्थन

UUID क्या है

UUID 128-बिट पहचानकर्ता है, जिसे मानक रूप से 36 अक्षरों के रूप में हाइफ़न के साथ दर्शाया जाता है।

UUID v1: समय-टैग और नेटवर्क कार्ड जानकारी पर आधारित, समय के अनुसार क्रमबद्ध, लेकिन समय/स्थान की जानकारी लीक हो सकती है।

UUID v4: यादृच्छिक संख्याओं पर आधारित, सबसे अधिक उपयोग किया जाने वाला, अच्छी अद्वितीयता और गोपनीयता प्रदान करता है।

UUID v7: यूनिक्स मिलीसेकंड समय + यादृच्छिक संख्या पर आधारित, स्वाभाविक रूप से क्रमबद्ध, और v1 की गोपनीयता समस्याओं से मुक्त।

UUID v5: नामांकन अंतराल UUID और नाम पर आधारित, SHA-1 द्वारा गणना की जाती है; समान इनपुट से समान परिणाम प्राप्त होता है।

UUID त्वरित उदाहरण

मानक फॉर्मेट:
550e8400-e29b-41d4-a716-446655440000
बड़े अक्षर फॉर्मेट:
550E8400-E29B-41D4-A716-446655440000
बिना हाइफ़न:
550e8400e29b41d4a716446655440000
ब्रेस के साथ:
{550e8400-e29b-41d4-a716-446655440000}

UUID सामान्य उपयोग

  • डेटाबेस रिकॉर्ड या संसाधनों के लिए अद्वितीय पहचान
  • लॉग और इवेंट ट्रेसिंग के लिए Trace ID
  • अनुमानित कठिन सार्वजनिक पहचानकर्ता
  • प्रणालियों के बीच एकीकरण के लिए समान पहचान

UUID अक्सर पूछे जाने वाले प्रश्न और चुनौतियाँ

  • v1 और गोपनीयता: v1 समय/स्थान को प्रकट कर सकता है; गोपनीयता के महत्व पर विचार करें तो v4 का उपयोग करें।
  • अक्षरों की बड़ी और छोटी रूप समान हैं: मेल खाने में अक्षरों की बड़ी-छोटी भूमिका नहीं होती।
  • हाइफ़न केवल पठनीयता के लिए हैं; अगर सीमा न हो, तो उन्हें बनाए रखना बेहतर है।
  • ब्रेस ({} के साथ) कुछ वातावरणों में स्वीकार्य हैं (जैसे Windows रजिस्ट्री)।
  • v5 निर्धारित है (समान नामस्थान + नाम => समान UUID); समान परिणाम चाहिए तो उपयुक्त, अप्रत्याशितता चाहिए तो उपयुक्त नहीं।

प्रोग्रामिंग भाषाओं में UUID का उपयोग कैसे करें

JavaScript
उत्पन्न करें
// UUID v4 (simple)
function uuidv4(){
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
    const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8);
    return v.toString(16);
  });
}
const id = uuidv4();
UUID v7 (यूनिक्स समय + यादृच्छिक)
// UUID v7 (Unix ms + randomness)
function uuidv7(){
  const cryptoObj = (globalThis.crypto || globalThis.msCrypto);
  const rb = n => { const a = new Uint8Array(n); cryptoObj?.getRandomValues ? cryptoObj.getRandomValues(a) : a.forEach((_,i)=>a[i]=Math.random()*256|0); return a; };
  const hex = b => Array.from(b).map(x=>x.toString(16).padStart(2,'0')).join('');
  const ts = BigInt(Date.now()).toString(16).padStart(12,'0');
  const ver = rb(2); ver[0] = (ver[0] & 0x0f) | 0x70;    // set version 7
  const vrn = rb(2); vrn[0] = (vrn[0] & 0x3f) | 0x80;    // RFC4122 variant
  const tail = rb(6);
  return `${ts.slice(0,8)}-${ts.slice(8,12)}-${hex(ver)}-${hex(vrn)}-${hex(tail)}`;
}
const id7 = uuidv7();
सत्यापित करें
const re=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-57][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
re.test(id); // true/false
PHP
उत्पन्न करें
<?php
// v4 using random_bytes
function uuidv4(){
  $data = random_bytes(16);
  $data[6] = chr((ord($data[6]) & 0x0f) | 0x40);
  $data[8] = chr((ord($data[8]) & 0x3f) | 0x80);
  return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
$id = uuidv4();
UUID v7 (यूनिक्स समय + यादृच्छिक)
<?php
// composer require ramsey/uuid:^4.7
use Ramsey\Uuid\Uuid;

$uuid7 = Uuid::uuid7();
सत्यापित करें
<?php
$re = '/^[0-9a-f]{8}-[0-9a-f]{4}-[1-57][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i';
preg_match($re, $id) === 1; // true/false
Python
उत्पन्न करें
import uuid
# v4
uid = uuid.uuid4()
# v1
uid1 = uuid.uuid1()
UUID v7 (यूनिक्स समय + यादृच्छिक)
# pip install uuid6
from uuid6 import uuid7

uid7 = uuid7()
सत्यापित करें
import re
re_uuid = re.compile(r'^[0-9a-f]{8}-[0-9a-f]{4}-[1-57][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$', re.I)
bool(re_uuid.match(str(uid)))
Go
उत्पन्न करें
// go get github.com/google/uuid
import "github.com/google/uuid"

id := uuid.New()     // v4
id1 := uuid.NewUUID() // v1 (may return error)
UUID v7 (यूनिक्स समय + यादृच्छिक)
// go get github.com/gofrs/uuid/v5
import (
  uuid "github.com/gofrs/uuid/v5"
)

id7, err := uuid.NewV7()
सत्यापित करें
import "github.com/google/uuid"
_, err := uuid.Parse(id.String()) // err == nil means valid
Rust
उत्पन्न करें
// Cargo.toml: uuid = { version = "1", features = ["v4", "v1"] }
use uuid::Uuid;

let v4 = Uuid::new_v4();
// v1 requires a context/ts, often via external crate; shown for completeness
UUID v7 (यूनिक्स समय + यादृच्छिक)
// Cargo.toml: uuid = { version = "1", features = ["v7"] }
use uuid::Uuid;

let v7 = Uuid::now_v7();
सत्यापित करें
use uuid::Uuid;
let ok = Uuid::parse_str(v4.to_string().as_str()).is_ok();
Java
उत्पन्न करें
import java.util.UUID;

UUID id = UUID.randomUUID(); // v4
UUID v7 (यूनिक्स समय + यादृच्छिक)
// Maven: com.github.f4b6a3:uuid-creator
import com.github.f4b6a3.uuid.UuidCreator;

UUID v7 = UuidCreator.getTimeOrderedEpoch(); // UUIDv7
सत्यापित करें
import java.util.UUID;

try { UUID.fromString(id.toString()); /* valid */ } catch (IllegalArgumentException ex) { /* invalid */ }