UUID جنریٹر ٹول
UUID (v1، v4، v5، v7) کو جنریٹ اور ویلیڈیٹ کریں، بیچ جنریشن اور متعدد فارمیٹنگ آپشنز کا سپورٹ، اور متعدد زبانوں کے کوڈ مثالیں فراہم کریں۔
استعمال کی ہدایات
UUID ایک 128-bit شناخت کنندہ ہے جو معیاری طور پر 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-bit شناخت کنندہ ہے جو معیاری طور پر 36 کریکٹرز کے ساتھ ہائپینز کے ساتھ ظاہر ہوتا ہے۔
UUID v1: ٹائم اسٹیمپ اور نیٹ ورک کارڈ معلومات پر مبنی، وقت کے مطابق ترتیب دیا گیا، لیکن وقت/مقام کی خفیہ معلومات فاش کر سکتا ہے۔
UUID v4: تصادفی نمبروں پر مبنی، سب سے زیادہ استعمال ہونے والا، بہتر منفردی اور خصوصیت کے ساتھ۔
UUID v7: یونکس ملی سیکنڈ ٹائم + تصادفی عدد پر مبنی، قدرتی طور پر قابل ترتیب، v1 کی خصوصیات کے مسائل سے بچتا ہے۔
UUID v5: نیم اسپیس UUID اور نام پر مبنی، SHA-1 کے ذریعے حساب لگایا جاتا ہے؛ ایک جیسا ان پٹ ہمیشہ ایک جیسا نتیجہ دیتا ہے۔
UUID عام استعمالات
- ڈیٹا بیس ریکارڈ یا وسائل کے لیے منفرد شناخت
- لوگ اور واقعات ٹریسنگ کے لیے Trace ID
- اندازہ لگانا مشکل عوامی شناخت
- سسٹم کے درمیان ایک جیسی شناخت کے لیے
UUID عام سوالات اور عام غلطیاں
- v1 اور خصوصیت: v1 وقت/مقام کو شائع کر سکتا ہے، خصوصیت پر توجہ دینے کے لیے v4 استعمال کریں۔
- بڑے اور چھوٹے حروف مساوی ہیں: میچنگ کے دوران حروف کی صورت نظر انداز کی جاتی ہے
- ہائپن صرف نمایندگی کے لیے ہیں؛ جہاں محدود نہ ہو، عام طور پر انہیں برقرار رکھیں
- بریس فارم کچھ ماحولوں (جیسے ونڈوز رجسٹری) میں قابل قبول ہے
- 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 */ }