UUID Generatoru
UUID yaradın — təsadüfi v4 və ya vaxta görə sıralanan v7 — tək və ya toplu şəkildə, sisteminizin gözlədiyi formatda; istənilən UUID-i geri yapışdırıb versiyasını və yaradılma vaxtını oxuyun.
v4 UUID-in quruluşu
f47ac10b-58cc-4372-a567-0e02b2c3d479 dəyərinə baxın. Üçüncü
qrupu açan 4 versiya markeridir, dördüncü qrupu açan
a isə variantı kodlaşdırır — onun yuxarı bitləri həmişə
10-dur, ona görə həmin simvol yalnız 8, 9, a və ya b ola
bilər. Qalan bütün onaltılıq rəqəmlər təsadüfidir.
Beləliklə 128 bitdən 122-si təsadüfi qalır. Defislər heç bir məlumat daşımır; onlar sadəcə dəyəri oxunaqlı etmək üçündür — defissiz format da eyni dərəcədə düzgündür və hər iki halda 16 baytda saxlanılır.
Toqquşma əslində nə qədər ehtimalsızdır
122 təsadüfi bit 5,3 × 10³⁶ mümkün dəyər verir. Ad günü həddi deyir ki, toqquşmanın ehtimallı olduğu say bu ədədin özü deyil, təxminən onun kvadrat kökündür:
| Yaradılan UUID | Bir toqquşma şansı | Saniyədə milyardla |
|---|---|---|
| 103 trilyon | Milyardda 1 | 29 saat |
| 103 kvadrilyon | Mində 1 | 3,3 il |
| 2,7 kvintilyon | 50 faiz | 86 il |
Buna görə də istismarda təkrarlanan dəyər statistik maraq deyil, təsadüfi mənbə barədə xəta bildirişidir.
Hansı versiyanı seçmək
| Versiya | Nəyə əsaslanır | Nə vaxt |
|---|---|---|
| v1 | Vaxt möhürü + MAC ünvanı | Köhnə — avadanlıq kimliyini açır |
| v4 | Təsadüfi | Açıq identifikatorlar üçün standart |
| v5 | Ad sahəsi + ad (SHA-1) | Eyni giriş eyni ID verməlidir |
| v7 | Vaxt möhürü + təsadüfi | Sıralanan əlavələr lazım olan baza açarları |
Tez-tez verilən suallar
v7-ni v4 əvəzinə nə vaxt seçməliyəm?
İdentifikator verilənlər bazasında açar olanda. v4 on altı təsadüfi baytdır, ona görə ardıcıl əlavələr B-ağacı boyunca dağılır və hər biri fərqli səhifəni dəyişir; v7 isə yuxarı bitlərində millisaniyə vaxt möhürü daşıyır, deməli ardıcıl yaradılanlar ardıcıl sıralanır və əlavələr indeksin sonunda qalır. İdentifikator açıqdırsa və heç nə açmamalıdırsa, v4 seçin — v7 onu əlində tutan hər kəsə qeydin təxminən nə vaxt yarandığını bildirir.
Birlikdə yaradılan v7 UUID-lər həqiqətən sıralanır?
Bəli. Bir dəstdəki hər şey eyni millisaniyəni bölüşür, ona görə tək vaxt möhürü onları sıralaya bilməz — qalan bitlər təsadüfi olardı və dəst sıralanan kimi görünüb əslində sıralanmazdı. Bu generator RFC 9562-nin məhz bunun üçün ayırdığı on iki bitdə sayğac saxlayır və sayğac dolanda növbəti millisaniyəyə keçir, beləliklə min ədədlik seriya yaradıldığı sıra ilə çıxır.
4-cü versiya UUID nədir?
128 bitlik identifikatordur: 122 biti təsadüfi, 6 biti isə versiya və variantı bildirən sabit markerlərdir. Onun içində vaxt möhürü, MAC ünvanı və ya sayğac olmadığı üçün nə vaxt və harada yaradıldığı barədə heç nə açmır — açıq identifikatorlar üçün standart seçim olmasının səbəbi elə budur.
İki UUID üst-üstə düşə bilərmi?
Nəzəri olaraq bəli, praktikada yox. 122 təsadüfi bit 5,3 × 10³⁶ mümkün dəyər verir və tək bir toqquşmanın 50 faiz ehtimalına çatmaq üçün təxminən 2,7 kvintilyon UUID yaratmaq lazımdır. Saniyədə bir milyard sürəti ilə bu, 86 il fasiləsiz iş deməkdir. Real həyatda hər təkrarlanan dəyər bəxtsizlikdən deyil, pozulmuş təsadüfi mənbədən gəlir.
UUID-i verilənlər bazasında baş açar kimi işlətmək olar?
İndeksdən asılıdır. Təsadüfi UUID-lər yazmaları B-ağacı boyunca dağıdır, bu da indeksi parçalayır və böyük həcmdə əlavə etmə sürətini aşağı salır — klasterləşdirilmiş indeksli MySQL və SQL Server-də bu real xərcdir. Vaxt möhürünü yuxarı bitlərə qoyan UUIDv7 əlavə etmələri ardıcıl saxlayır və hər iki xüsusiyyəti istəyən yeni sxemlər üçün daha yaxşı seçimdir.
Bunlar təhlükəsiz yaradılır?
Bəli. Mövcud olduqda crypto.randomUUID() işlədilir, olmadıqda versiya və variant bitləri düzgün qoyulmaqla crypto.getRandomValues()-a keçilir. İkisi də əməliyyat sisteminin kriptoqrafik entropiya hovuzundan qidalanır, ona görə nəticə dəvət tokenləri kimi təxmin edilməməli identifikatorlar üçün yararlıdır.
Oxşar alətlər
- Diaqram və Blok-sxem QurucusuBlok-sxem və diaqram çəkin, qutuları özü marşrutlaşan oxlarla birləşdirin, düzülüşü avtomatik qurdurun. SVG ixracı var.
- Şifrə GeneratoruBrauzerin kriptoqrafik təsadüfi say generatoru ilə güclü şifrələr yaradın, gücünü dərhal görün.
- HTML Entity ÇeviriciMətni HTML üçün kodlayın və ya entity-ləri geri açın — markap pozucuları, adlı dəstlər, emojiyə qədər rəqəmsal istinadlar. Düz bir dəfə açır.