İçeriğe geç

UUID Oluşturucu

UUID v1, v3, v4, v5, v7 ve ULID tanımlayıcıları üretin, mevcut UUID'leri çözümleyin.

Tarayıcınızda çalışır. Hiçbir şey yüklenmez.

v1 ve v7 için sürümü, varyantı ve gömülü zamanı gösterir.

Bu araç hakkında

UUID Üretici her tanımlayıcı türünü tek sayfada üretir: tarayıcının kendi crypto.randomUUID işlevinden UUID v4 (RFC 9562 §5.4), 48 bitlik Unix milisaniyesi ile monotonik bir sayaç ve rastgele bitlerden UUID v7 (§5.7 ve §6.2), 1582'den bu yana geçen 100 ns'lik tıklardan ve MAC adresi yerine rastgele bir düğüm kimliğinden UUID v1 (§5.1), bir ad alanı ile bir ad üzerinden ad tabanlı UUID v3 ve v5 (§5.3, §5.5), nil ve max sabitleri ve 10 karakterlik Crockford base32 zaman damgasının ardından 16 rastgele karakter gelen ULID. Tek seferde en fazla 1000 tane alabilir; bunları satır sonu, virgül, noktalı virgül, dikey çizgi ile veya SQL listesi olarak ayırabilir, UUID'leri 8-4-4-4-12 biçiminde, tiresiz, süslü parantez içinde ya da urn:uuid: olarak yazdırabilirsiniz; ULID'ler ise tek kanonik büyük harfli biçimlerini korur. v3 ve v5 belirlenimci olduğu için bu ikisi toplu üretim yerine tek bir tanımlayıcı döndürür. Çözümleyici, var olan bir UUID'nin sürümünü ve varyantını okur ve zaman taşıyan sürümler olan v1 ile v7 için gömülü zamanı gösterir. v2, v6 veya v8 üretmez.

Üretme ve çözümleme tamamen tarayıcıda gerçekleşir. UUID v4 crypto.randomUUID'den gelir; UUID v1 ile v7'nin rastgele baytları ve bir ULID'nin rastgele karakterleri crypto.getRandomValues'tan, zaman ön eki ise kendi makinenizdeki Date.now'dan gelir. Ada dayalı v3 ve v5 de burada hesaplanır - MD5 için sayfanın kendi uygulamasıyla, SHA-1 için crypto.subtle ile - böylece yazdığınız ad alanı ve ad sayfada kalır. XGM API'sine hiçbir şey ulaşmaz, URL yalnızca araç yolunu tutar - tür, çıktı biçimi ve adet sorgu parametresi değil sayfa durumudur - ve ürettiğiniz tanımlayıcılar sekme kapandıktan sonra hiçbir yerde saklanmaz.

Nasıl kullanılır

  1. UUID Oluşturucu aracını açın.
  2. İncelemek istediğiniz girdiyi yapıştırın veya yazın.
  3. Tarayıcınızda hesaplanan sonucu okuyun; girdi XGM'e gönderilmez.
  4. Çıktıyı yalnızca doğru göründüğünü kontrol ettikten sonra kopyalayın.
  5. Daha geniş bir teşhis görünümü gerekiyorsa ilgili XGM araçlarını kullanın.

SSS

UUID v7 gerçekten zamana göre sıralanabilir mi?

Milisaniyeler arasında evet: ilk 48 bit, big-endian sırada Unix milisaniye sayacıdır; bu yüzden baytları ya da onaltılık dizeyi sıralamak oluşturulma zamanına göre sıralar ve v7'yi veritabanı anahtarı olarak v4'ten daha kullanışlı kılan da budur. Tek bir milisaniye içinde bu araç, varsayılan olarak açık olan RFC 9562 §6.2 sabit uzunluklu sayacını ekler; böylece aynı milisaniyede üretilen kimlikler üretildikleri sırayı korur. Sayacı kapatırsanız zaman damgasının altındaki bitler yeniden rastgele olur ve aynı milisaniyedeki kimliklerin tanımlı bir sırası kalmaz. Sayaç yalnızca bu sayfada üretilen kimlikleri sıralar - aynı milisaniyede başka bir yerde üretilen kimlikler hakkında hiçbir şey söylemez.

v4 yerine ne zaman UUID v5 kullanmalıyım?

Aynı girdinin her zaman aynı tanımlayıcıya karşılık gelmesi gerektiğinde. v5, bir ad alanı UUID'sini bir adla birlikte özetler (SHA-1, 16 bayta kısaltılır, sürüm ve varyant bitleri üzerine yazılır); böylece aynı ad alanı ve ad her makinede, sonsuza dek, hiçbir eşgüdüm ve veritabanı sorgusu olmadan aynı UUID'yi verir. v3 aynı kurgunun MD5 üzerindeki hâlidir ve eski sistemlerle uyumluluk için vardır; yeni işlerde v5'i tercih edin. İkisi de bir güvenlik ilkesi değildir: adı tahmin edebilen herkes onu geri elde edebilir.

Bir v4 UUID ne kadar benzersiz?

128 bitin altısı sabittir - dördü sürüm, ikisi varyant için - geriye 122 rastgele bit kalır; bu da tarayıcının kriptografik rastgelelik kaynağından çekilen 2^122 değerlik bir uzaydır. Normal bir uygulamanın ürettiği herhangi bir hacimde çakışma pratik bir endişe değildir. Bu eşgüdüm değil rastgeleliktir, dolayısıyla ilke olarak bir çakışmayı engelleyen bir şey yoktur; veritabanındaki bir benzersizlik kısıtı yine de elde tutulmaya değer.

UUID v7 mi yoksa ULID mi kullanmalıyım?

İkisi de aynı 48 bitlik milisaniye zaman damgasıyla başlar, bu yüzden ikisi de zamana göre sıralanır. UUID v7 gerçek bir RFC 9562 UUID'sidir: bir uuid sütununa, dilinizdeki bir UUID tipine ve 8-4-4-4-12 biçimini zaten doğrulayan herhangi bir API'ye uyar. ULID ise 80 rastgele bitten oluşan 26 karakterlik Crockford base32'dir; okuması daha kısa ve büyük/küçük harfe duyarsızdır, ama bir UUID değildir ve dönüştürülmeden bir uuid sütununa girmez.

Çözücünün bildirdiği “varyant” nedir?

Varyant bitleri 17. onaltılık basamağın başında yer alır ve tanımlayıcının geri kalanının hangi düzeni izlediğini söyler. “RFC 9562” normal durumdur; “NCS (reserved)”, “Microsoft (reserved)” ve “Future (reserved)” eski ve ayrılmış düzenleri işaretler ve karışık bayt sıralı alanlarla yazılmış bir Microsoft GUID'i genellikle orada görünür. Tamamı sıfır olan Nil ve tamamı f olan Max UUID'leri bir sürüm numarası yerine adlarıyla bildirilir.

UUID'imde gömülü zaman neden boş?

Yalnızca v1 ve v7 bir zaman damgası taşır. v4 rastgeledir, v3 ve v5 ise bir ad alanı ile bir adın özetidir; bu yüzden çıkarılacak bir zaman yoktur - çözücü bir zaman uydurmak yerine bunu söyler. v1 için değer, 1582-10-15 tarihinden bu yana geçen 100 nanosaniyelik aralıklardan dönüştürülür ve her iki sürümde de tanımlayıcıyı üreten makinenin saatini yansıtır; bu yüzden onu kanıt değil, ipucu olarak görün.

Tam UUID Oluşturucu rehberini okuyun