§

UUID Generator — bepul onlayn UUID v4 generator

v4 standart variant. v7 yaratilish vaqti bo'yicha leksikografik tartibda saralanadi va ma'lumotlar bazasi kalitlari uchun eng yaxshi tanlovdir.
Chiqish formati
§

Natija

    UUID identifikatorlari O‘zbekistondagi taqsimlangan tizimlarning asosiy elementi: Olcha.uz va Uzum Market’ning buyurtma microservice’lari har bir kassani uzilishsiz birga ishlashi uchun v4 UUID’dan foydalanadi, mybank.uz aggregator esa hisob raqamlari o‘rniga ichki identifikatorlarini v7 vaqt-saralanadigan UUID sifatida saqlaydi. Soliq qo‘mitasining e-faktura tizimi har bir hujjat uchun globally-unique GUID beradi va STIR raqamiga bog‘lab tekshiradi. IT Park rezidentlari Supabase, PlanetScale yoki PostgreSQL Aurora’da PRIMARY KEY o‘rniga UUID v7 ni tanlamoqda — bu indeks bo‘yicha lokalizatsiyani saqlaydi. Markaziy bank tomondan kelayotgan FAPI ochiq bank webhook’lari ham idempotency-key sifatida v4 UUID kutadi. Bu vosita bir vaqtning o‘zida v1, v4 va v7 ni mahalliy holda hosil qiladi.

    UUID nima?

    UUID (Universally Unique Identifier) — bu 550e8400-e29b-41d4-a716-446655440000 kabi 36 belgilik satr ko'rinishida ko'rsatiladigan 128 bitli qiymat. Uning formati va versiyalar semantikasi v1–v5 uchun RFC 4122, yangiroq v6, v7 va v8 uchun esa RFC 9562 tomonidan belgilanadi. Ushbu vosita v4 (sof tasodifiy), v1 (vaqt belgisi + tasodifiy tugun ID) va v7 (Unix millisekundlik vaqt belgisi prefiksi + tasodifiy suffiks, yaratilish vaqti bo'yicha saralanadigan) UUID'larni yaratadi — barchasi brauzeringizda, platforma Web Crypto API orqali. Hech qanday ma'lumot serverga yuborilmaydi.

    UUID yaratish qanday ishlaydi?

    Har bir versiya determinizm, saralanish va entropiya orasidagi muvozanatni boshqacha tanlaydi. Asbob tanlovingizga qarab toʻgʻri algoritmni tanlaydi:

    1. v4 (tasodifiy) brauzerning crypto.randomUUID() funksiyasini chaqiradi va 122 bit kriptografik tasodifiylikni qaytaradi, 6 ta qat'iy bit (versiya 0100 va variant 10) o'rinlariga to'g'ri qo'yiladi. To'qnashuvlar astronomik darajada kam ehtimol — 50% ehtimollik bilan bitta takror chiqarish uchun taxminan 2,71 × 10^18 ta v4 UUID yaratish kerak.
    2. v1 (vaqt belgisi + tugun) 60 bitli Grigorian vaqt belgisini (1582-10-15 dan boshlab 100 nanosekundlik takti) time_low / time_mid / time_hi_and_version ichiga joylaydi, versiya nibble'ini 0001 ga o'rnatadi, variant bitlari o'rnatilgan 14 bitli soat ketma-ketligini tanlaydi va multicast biti majburiy yoqilgan 48 bitli tasodifiy tugun ID'sidan foydalanadi (RFC 4122 §4.5 apparat MAC mavjud bo'lmaganda tasodifiy tugun ID'sini sarihan ruxsat beradi — multicast biti uni MAC emasligini bildiradi).
    3. v7 (saralanadigan vaqt belgisi), RFC 9562 §5.7 ga ko'ra, oldin 48 bitli big-endian Unix millisekund vaqt belgisini, so'ng 4 bitli versiya 0111'ni, keyin 12 tasodifiy bitni, so'ngra 2 bitli variant 10'ni va yana 62 tasodifiy bitni joylashtiradi. Vaqt belgisi eng yuqori ahamiyatli bitlarda turgani uchun v7 UUID'lari yaratilish tartibida leksikografik tartibda saralanadi — bu xususiyatni boshqa hech bir UUID versiyasi qo'shimcha kodlashsiz taqdim eta olmaydi.
    4. Barcha tasodifiylik crypto.getRandomValues()'dan, ya'ni brauzerning kriptografik xavfsiz RNG'sidan keladi. Ham v1, ham v7 bir soat takti ichida monotonlik himoyasini o'z ichiga oladi, shunda bir takt ichida ikki ketma-ket chaqiruvda ikkinchisi birinchisidan yuqoriroq tartiblanadi — millisekund soatidan tezroq ishlaydigan ko'p yaratishlar uchun bu juda muhim.
    5. Yaratilgandan so'ng formatlash quvuri ishga tushadi. Defislarni olib tashlashingiz, katta harflarga o'tkazishingiz, qiymatni jingalak qavslar bilan o'rashingiz ({…} — Microsoft GUID an'anasi) yoki xom 16 baytni base64 (22 belgilik chiqish, padding'siz) sifatida ko'rsatishingiz mumkin. base64 rejimi boshqa format variantlarini bekor qiladi, chunki base64 o'z-o'zicha alohida tasvirdir.

    Nima uchun ushbu UUID generatordan foydalanish kerak?

    • Brauzeringizdan hech narsa chiqmaydi. Web Crypto API mahalliy ishlaydi; dastlabki hujjat yuklanishidan keyin sahifa hech qanday tarmoq so'rovi yubormaydi. DevTools'ni oching, Yaratish'ni bosing — Network paneli jim qoladi.
    • RFC'ga mos chiqish. v4 RFC 4122 §4.4 ga, v1 §4.2 va §4.5 ga, v7 esa RFC 9562 §5.7 ga rioya qiladi. Versiya nibble va variant bitlari standart belgilagan joyda joylashadi — har bir UUID o'z versiyasining standart muntazam ifoda tekshiruvidan o'tadi.
    • Ma'lumotlar bazasi kalitlari uchun saralanadigan v7. Postgres, MySQL yoki SQL Server'da klasterlangan birlamchi kalit sifatida ishlatilgan v7 UUID indeksga qo'shimchalarni faqat oxiriga qo'shgan holda saqlaydi — sahifa bo'linishi yo'q, tasodifiy I/O yo'q — va shu bilan birga global noyob bo'lib qoladi. v4 buni qila olmaydi, chunki uning bitlari tasodifiy.
    • Tezlik chegarasiz ko'p yaratish. Bir martada 1, 10, 100 yoki 1 000 ta UUID yarating. Kvota ham, ro'yxatdan o'tish ham yo'q — vosita sizning yorlig'ingizda ishlaydi, shuning uchun chegara — bu sotuvchining API rejasi emas, sizning CPU'ngizdir.

    UUID-larning keng tarqalgan qo‘llanilishlari qanday?

    UUID’lar tizimga markaziy hokimiyat bilan kelishmasdan global noyob identifikator kerak boʻlgan joyda paydo boʻladi:

    • Ma'lumotlar bazasi birlamchi kalitlari. Avtomatik o'sadigan butun sonlar qator sonini fosh qiladi va sharding'ni buzadi. UUID'lar shardlar o'rtasida barqaror, mintaqalar o'rtasida birlashtirish uchun xavfsiz va (v7 bilan) sahifa bo'linishlarisiz B-tree qo'shimchalarini issiq holatda tutadi. Tipik dastur UUID'ni mijoz tomonida yaratadi, uni INSERT bilan yuboradi va kalit uchun hech qachon serverga borib qaytmaydi.
    • So'rov korrelyatsiya ID'lari. HTTP middleware har bir kiruvchi so'rovga v4 UUID biriktiradi, har bir spanda uni qayd etadi va pastga (ko'pincha X-Request-Id sarlavhasi sifatida) uzatadi. Mijoz xatolik haqida xabar berganda, qo'llab-quvvatlash muhandisi ID'ni qo'yadi va xizmatlar hamda vaqt zonalari bo'ylab butun so'rov izi noaniqlik bo'lmasdan paydo bo'ladi.
    • Idempotentlik kalitlari. To'lov API'lari (Stripe, Adyen, Square) Idempotency-Key sarlavhasini qabul qiladi, shunda qayta urinilgan so'rov mijozdan ikki marta to'lov olmaydi. Mijoz tomonida yaratilgan UUID kalitning har bir mantiqiy operatsiya uchun noyob bo'lishini kafolatlaydi — bu API'lar talab qiladigan shartnomaning aynan o'zi.

    UUID misoli qanday ko‘rinadi?

    Node.js yoki zamonaviy brauzerda bir qatorli crypto.randomUUID() yangi v4 UUID qaytaradi — masalan, 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Uni so'rov ID yoki idempotentlik kaliti sifatida ishlating. UUID klasterlangan birlamchi kalit bo'ladigan ma'lumotlar bazasi ustuniga ketganda, o'rniga v7 yarating: bir millisekund farq bilan yaratilgan ikki v7 qiymat, masalan 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 va 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, yaratilish tartibida leksikografik tartibda saralanadi. Postgres'ning uuid turi ikkala versiyani bir xil saqlaydi — farq indeks yozish vaqtida ko'rinadi: v7 qo'shimchalari B-tree'ning o'ng tomoniga ulanadi, v4 qo'shimchalari esa tarqalib, tasodifiy I/O'ga majbur qiladi.

    Ushbu UUID Generator bitta ishni bajaradi: bir bosishni RFC'ga mos bitta yoki ko'plab identifikatorga aylantiradi, sizga kerakli formatda, so'rovingizni hech qanday serverga yubormasdan. Versiyani tanlang, miqdorni tanlang, formatni tanlang — yarating, nusxa oling, ishingizga davom eting.