UUID Oluşturucu

Sonraki

UUID’ler, merkezi bir otoriteyle koordinasyona gerek kalmadan size küresel olarak benzersiz tanımlayıcılar verir. Bu oluşturucu RFC 4122 uyumlu v1 (zaman damgası + MAC), v4 (rastgele) ve v7 (zaman damgası önekli, sıralanabilir) değerleri üretir. Bir sürüm seçin, 1 veya 1000 isteyin ve listeyi seed verilerine, API anahtarı üretimine veya birim testlerinize kopyalayın.

UUID'ler nasıl üretilir

  1. 1

    Bir sürüm seçin

    Genel rastgelelik için v4, sıralama önemli olduğunda v7, zaman damgası bilgisine ihtiyaç duyduğunuzda v1.

  2. 2

    Miktar seçin

    Tek bir çalıştırmada bir UUID veya en fazla 10.000'lik bir grup.

  3. 3

    Üretin

    Değerler kriptografik rastgelelik için tarayıcının crypto API'sini kullanır.

  4. 4

    Kopyalayın veya indirin

    Yeni satır listesi, JSON dizisi veya CSV olarak alın.

Hangi UUID sürümünü kullanmalısınız?

Sürüm Yapı En uygun olduğu durum
v1 Zaman damgası + saat + MAC adresi Kronolojiye ihtiyaç duyduğunuz günlük ID’leri
v4 122 bit rastgele Genel benzersiz ID’ler, test fikstürleri
v7 Unix zaman damgası ms + rastgele (sıralanabilir) Veritabanlarındaki birincil anahtarlar

v7 neden varsayılan hâline geliyor

v4 rastgeledir; bu da onu veritabanı birincil anahtarı olarak berbat yapar: eklemeler B-tree boyunca dağılır ve yazma verimini zedeler. v7 (2024’te RFC 9562’de sonlandırıldı) UUID’nin önüne 48 bitlik bir milisaniye zaman damgası ekler; böylece yeni satırlar indeksin sonuna iner. Yine benzersizlik ve koordinasyonsuzluk elde edersiniz, artı oluşturma zamanına göre kaba bir sıralama.

Biçim kuralları

Bir UUID, 8-4-4-4-12 deseninde 32 onaltılık basamak olarak işlenen 128 bittir:

018f5b9c-7d4a-7a1b-8c0e-2e1b3c4d5e6f
         ^^                ^
         sürüm nibble'ı    variant bitleri
  • Sürüm nibble’ı 13. karakterdir (018f5b9c-7d4a-’dan sonra). v4 için 4, v7 için 7 vb.’dir.
  • Variant bitleri 17. karakterin ilk iki bitidir. RFC 4122 UUID’leri için 10’dur (yüksek nibble 8/9/a/b).

Çakışma olasılıkları

v4 için, bir kopya üretme olasılığı yok denecek kadar küçüktür: %50’lik bir çakışma şansına ulaşmadan önce 2,7 kentilyon (2,7 × 10^18) UUID üretmeniz gerekir. Bu, çoğu veritabanının asla göremeyeceğinden fazladır. v7 rastgele kuyruğu paylaşır, bu yüzden aynı milisaniye içinde çakışma olasılıkları eşdeğerdir.

Sık Sorulan Sorular

Geçmişte evet çünkü üreten ana bilgisayarın MAC adresini gömüyorlardı. Modern oluşturucular (bu dâhil) rastgele bir 48 bitlik düğüm kimliği kullanır, bu yüzden v1 artık donanımı açığa çıkarmaz.

Bir CSPRNG ile üretildiğinde (ki bu araç crypto.getRandomValues ile kullanır), v4 bir oturum tokeni olarak kullanılacak kadar tahmin edilemezdir. Ancak UUID’ler özünde sır değildir, bir sır gerekiyorsa onu sır olarak adlandırın.

Evet, URL güvenlidirler (yalnızca onaltılık ve kısa çizgi). Daha kısa görüntüleme için ham 128 biti base-32 veya base-62 kodlamayı düşünün ya da 26 karakter olan ve v7 gibi sıralanabilen bir ULID kullanın.

Hayır. Üretim tarayıcınızda gerçekleşir ve değerler asla bir sunucuya dokunmaz.

İlgili Araçlar

Araç diğer dillerde mevcuttur