UUID Üretici
Tarayıcınızda kriptografik olarak rastgele Versiyon 4 UUID'leri anında oluşturun. Web Crypto API'ye göre tek veya toplu üretim.
UUID v4, yaklaşık 5.3×1036 olası değeri olan 122 rastgele bit içerir. Tek bir çakışma için %50 olasılığa sahip olmak istiyorsanız, 2.71×1018 UUID üretmeniz gerekir. Saniyede bir milyonda, bu 85 yıl alır. UUID v4, RFC 9562'de standartlaştırılmıştır (RFC 4122'nin halefidir) ve modern dağıtık sistemlerde en yaygın kullanılan tanımlayıcı formatıdır. Bu üretici, tarayıcının crypto.randomUUID() API'sini kullanır ve işletim sisteminin CSPRNG'si tarafından desteklenir. Bir UUID veya yüzlerce UUID oluşturun - sunucu yok, kayıt yok.
UUID'leri Nasıl Üretebilirim
- Tek bir UUID oluşturmak için Üret butonuna tıklayın.
- Bir miktar girin (örneğin, 10, 100, 1000) ve birden fazla UUID için Toplu Üret butonuna tıklayın.
- Listede herhangi bir UUID'ye tıklayarak onu bireysel olarak kopyalayın veya tam listeyi kopyalamak için Tümünü Kopyala seçeneğini kullanın.
- Hedef sisteminize göre büyük harf veya küçük harf çıktı formatını seçin.
- Bir metin dosyası olarak dışa aktarmak için İndir seçeneğini kullanın.
UUID v4 Açıklaması
Yapı ve Format
Bir UUID, 8-4-4-4-12 deseninde 32 onaltılık karakterdir: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. Üçüncü gruptaki 4 sabittir (versiyon 4). Dördüncü grubun ilk 1-2 biti, ikili olarak 10 olarak sabittir (RFC 4122 varyantı). Kalan 122 bit rastgele üretilir. UUID v4, her büyük bulut sağlayıcısında, veritabanı sisteminde ve web çerçevesinde varsayılan tanımlayıcı formatı olarak görünmektedir.
Çakışma Olasılığı
2122 olası değerle (~5.3×1036), uygun bir CSPRNG'den bir kopya UUID v4 üretmek, herhangi bir gerçek dünya uygulaması için istatistiksel olarak önemsizdir. Pratik amaçlar için UUID v4 çakışmaları imkansız olarak kabul edilir.
Örnek
Üretilen UUID v4
f47ac10b-58cc-4372-a567-0e02b2c3d479
Farklı temsillerde aynı UUID
Tireli: f47ac10b-58cc-4372-a567-0e02b2c3d479
Büyük harf: F47AC10B-58CC-4372-A567-0E02B2C3D479
Tiresiz: f47ac10b58cc4372a5670e02b2c3d479
URN formatı: urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479
UUID Versiyonları Karşılaştırması
- v1 - Zaman tabanlı, üreten makinenin MAC adresini içerir. Donanım bilgilerini açığa çıkarır ve ardışık desenlere sahiptir. Güvenlik açısından hassas tanımlayıcılar için kaçınılmalıdır.
- v3 / v5 - İsim tabanlı ve deterministik: aynı giriş ad alanı + isim her zaman aynı UUID'yi üretir. Tekrar üretilebilir tanımlayıcılar için faydalıdır.
- v4 - Tamamen rastgele (122 bit). İçerik bilgisi yok, ardışık desen yok. Uygulama tarafından üretilen tanımlayıcılar için en yaygın kullanılan türdür.
- v7 - Zaman sıralı rastgele UUID'ler (RFC 9562). İlk 48 bit, Unix milisaniye zaman damgasıdır, bu da v7 UUID'lerin oluşturulma zamanına göre sıralanabilir olmasını sağlar. v4'e göre veritabanı B-ağaç dizin performansı için daha iyidir.
Yaygın Kullanım Alanları
- Birincil anahtarlar PostgreSQL'de (
uuidtürü), MySQL'de (VARCHAR(36)) ve MongoDB'de - Dağıtık sistem kimlikleri birçok hizmetin bağımsız olarak kayıt oluşturduğu durumlarda merkezi bir sıralama olmadan
- API kaynak tanımlayıcıları kamu URL'lerinde açığa çıkar (sıralama saldırılarına olanak tanıyan ardışık tamsayılardan daha güvenlidir)
- Yüklenen varlıklar için dosya adları çakışmaları önlemek için
- API istekleri için idempotent anahtarlar tekrar denemede çift işleme önlemek için
Güvenli rastgele parolalar oluşturmak için (tanımlayıcılar yerine), Parola Üretici'yi kullanın. Veritabanında sıralanabilir zaman tabanlı tanımlayıcılar için UUID v7 desteğini veritabanı sürücünüzde veya ORM'nizde arayın.
Sıkça Sorulan Sorular
Pratikte Versiyon 4 UUID ne kadar benzersizdir?
UUID v4, yaklaşık 5.3×1036 olası değeri olan 122 bit rastgelelik sunar. Tek bir çakışma için %50 şansa sahip olmak istiyorsanız, 2.71×1018 UUID üretmeniz gerekir - saniyede bir milyonda, bu yaklaşık 85 yıl alır. Pratik uygulamalarda, UUID v4 çakışmaları imkansız olarak kabul edilir.
Burada üretilen UUID'ler kriptografik olarak güvenli mi?
Evet. Bu araç, işletim sisteminin CSPRNG'si tarafından desteklenen crypto.randomUUID() (veya bir yedek olarak crypto.getRandomValues()) kullanır. Üretilen UUID'ler, güvenlik belirteçleri, oturum tanımlayıcıları ve diğer güvenlik açısından hassas bağlamlar için uygundur.
Veritabanı birincil anahtarları olarak UUID'leri mi yoksa otomatik artan tamsayıları mı kullanmalıyım?
Her ikisinin de avantajları ve dezavantajları vardır. UUID v4, birden fazla düğümün bağımsız olarak kimlikler oluşturduğu dağıtık sistemlerde iyi çalışır, kamu URL'lerinde kimlikleri tahmin edilemez hale getirir (sıralama saldırılarını önler) ve veritabanı birleştirmeyi basitleştirir. Otomatik artan tamsayılar daha basit, daha küçük (4-8 bayt vs 16 bayt) ve ardışık eklemeler için daha iyi B-ağaç dizin performansına sahiptir. UUID v7, rastgele UUID'lerin aynı zamanda zaman sıralı olduğu bir orta yol sunar.
Bir UUID'nin formatı nedir?
Bir UUID, 8-4-4-4-12 deseninde gruplandırılmış 32 küçük harfli onaltılık karakterdir: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. Tireler ile toplam dize uzunluğu 36 karakterdir. PostgreSQL, UUID'leri yerel 16 baytlık ikili tür olarak saklar; MySQL ve SQLite genellikle 36 karakterlik dizeyi saklar.
UUID'leri çevrimdışı üretebilir miyim?
Evet. Bu sayfa yüklendikten sonra, UUID üretimi tamamen yerel JavaScript ve tarayıcının yerleşik crypto API'si kullanılarak çalışır. Üretim sırasında ağ isteği yapılmaz. Araç, ilk sayfa yüklemesinden sonra çevrimdışı çalışır.