UUID Generator

UUID v4, v7 va v1 qiymatlarini bittadan yoki 1000 tagacha yarating — va qo'lingizdagi UUID qaysi versiya ekanini, qachon yaratilganini shu yerda aniqlang. Hammasi brauzeringizda, hech narsa serverga yuborilmaydi.

Versiya
Format

v4 tasodifiy

Tozalandi. Yangi qiymatlar uchun «Yangilash»ni bosing.

UUID'ni tahlil qilish

Log'dan yoki bazadan olingan UUID'ni shu yerga qo'ying. Tire bilan, tiresiz, qavs ichida yoki urn:uuid: shaklida bo'lishi mumkin.

Qaysi versiyani tanlash kerak

UUID — 128 bitlik identifikator: uni markaziy hisoblagichsiz, boshqa xizmat bilan kelishmasdan yaratasiz va baribir takrorlanmaydi. Savol odatda «UUID nima» emas, «shu ustunga qaysi versiyani yozay» bo'ladi. Buni ikki narsa hal qiladi: qiymatlar yaratilish vaqti bo'yicha tartiblanadimi va nechta biti haqiqatan tasodifiy.

VersiyaTasodifiy bitVaqt bo'yicha tartiblanadimiQachon
v4 — tasodifiy122 bitYo'qDeyarli har qanday holat uchun to'g'ri javob. Faqat tasodifiy bitlardan iborat, shuning uchun undan hech qanday ma'lumot o'qib bo'lmaydi.
v7 — Unix vaqti74 bitHaBazadagi asosiy kalit uchun. Boshida vaqt belgisi turgani uchun yangi qatorlar indeksning oxiriga qo'shiladi; v4 esa indeks bo'ylab sochilib, uni parchalaydi.
v1 — vaqt va node62 bitYo'qEski tizimlar bilan ishlash uchun. Aslida node sifatida MAC address yozilardi; brauzerda u yo'q, shuning uchun bu yerda tasodifiy node ishlatiladi.
Nil0 bitYo'q«Qiymat yo'q» degani. Ustun NOT NULL bo'lgani uchun biror narsa yozish kerak bo'lganda, yoki testda.

Vaqt belgisi bor versiyalarni (v1, v6, v7) maxfiy token sifatida ishlatmang: bitta qiymatni ko'rgan odam qo'shnilarini taxmin qila oladi. Maxfiy havola yoki session identifikatori kerak bo'lsa — v4, u to'liq 122 bit tasodifiy.

Ko'p so'raladigan savollar

UUID nima va u qanday takrorlanmaydi?

UUID — 128 bitlik identifikator. Uning kuchi shundaki, uni yaratish uchun markaziy hisoblagich ham, boshqa xizmatlar bilan kelishuv ham kerak emas: har bir server, har bir qurilma o'zi yaratadi va qiymatlar baribir to'qnashmaydi. Shuning uchun taqsimlangan tizimlarda, offlayn ishlaydigan mobil ilovalarda va fayl nomlarida ishlatiladi.

Bazadagi asosiy kalit uchun v4 yaxshimi yoki v7?

Asosiy kalit uchun v7. v4 to'liq tasodifiy bo'lgani uchun har bir yangi qator indeksning tasodifiy joyiga tushadi — bu indeksni parchalaydi va katta jadvalda yozishni sekinlashtiradi. v7 esa boshida vaqt belgisini saqlaydi, shuning uchun qiymatlar yaratilish tartibida o'sadi va yangi qatorlar indeksning oxiriga qo'shiladi. Qiymatning o'zidan yaratilgan vaqtni bilib bo'ladi — agar bu sizga to'g'ri kelmasa, v4'da qoling.

Ikkita bir xil UUID chiqib qolishi mumkinmi?

Amalda yo'q. v4'da 122 bit tasodifiy, ya'ni 5 kvintilliondan (5·10^18) ortiq qiymat yaratilgandan keyingina to'qnashuv ehtimoli sezilarli bo'ladi. Bu yerda qiymatlar brauzerning Web Crypto CSPRNG'idan olinadi — Math.random() emas, chunki u tasodifiylik uchun mo'ljallanmagan va uning natijasini oldindan aytish mumkin.

UUID'ni token yoki maxfiy havola sifatida ishlatsam bo'ladimi?

v4'ni — ha, unda 122 bit tasodifiy bor va u kriptografik generatordan keladi. v1, v6 va v7'ni — yo'q: ularning boshida vaqt belgisi turadi, ya'ni bitta havolani ko'rgan odam o'sha paytda yaratilgan boshqa qiymatlarni ancha tor doirada taxmin qila oladi. Parolni tiklash havolasi yoki taklif havolasi uchun v4 ishlating.

Yaratilgan qiymatlar serverga yuboriladimi?

Yo'q. Hamma narsa brauzeringizda, Web Crypto API orqali hisoblanadi — na yaratilgan qiymatlar, na tahlil maydoniga qo'ygan UUID'ingiz hech qayerga yuborilmaydi va saqlanmaydi. Sahifani yopsangiz hammasi yo'qoladi.