UUID nedir?
UUID (Evrensel Benzersiz Tanımlayıcı), 128 bitlik bir kimliktir ve 8-4-4-4-12 düzeninde 32 onaltılık karakter olarak yazılır. Microsoft dünyasında aynı yapıya GUID denir. Örnek biçim: 123e4567-e89b-42d3-a456-426614174000. Veritabanı kayıtlarında, dosya adlarında, oturum kimliklerinde ve test verilerinde yaygın olarak kullanılır.
UUID v4 nasıl üretilir?
Sürüm 4 UUID'ler neredeyse tamamen rastgele bitlerden oluşur. 128 bitten 6'sı sürüm ve değişken bilgisini taşır, kalan 122 bit rastgeledir. Üçüncü grubun ilk karakteri her zaman 4'tür; dördüncü grubun ilk karakteri 8, 9, a veya b olur. Bu araç tarayıcınızın kriptografik olarak güvenli rastgele sayı üretecini kullanır.
Çakışma olasılığı
Rastgele 122 bit olduğu için iki UUID'nin çakışma olasılığı pratikte sıfırdır. Milyarlarca kayıt üretseniz bile çakışma görme ihtimaliniz son derece düşüktür; bu nedenle merkezi bir sayaç olmadan benzersiz kimlik üretmek için uygundur.
Biçim seçenekleri
- Standart: küçük harfli, tireli biçim.
- Büyük harf: bazı sistemlerin beklediği biçim.
- Tiresiz: 32 karakterlik sıkı biçim; dosya adı ve anahtar olarak kullanışlıdır.
- Süslü parantezli: .NET ve Windows ortamlarında görülen GUID yazımı.
Not: UUID'ler tahmin edilmesi zor olsa da parola veya gizli anahtar yerine kullanılmamalıdır. Değerler tarayıcınızda üretilir ve hiçbir yere gönderilmez.
Nerede işinize yarar?
Test verisi hazırlarken, veritabanı seed dosyalarında, geçici dosya adlarında veya sahte kullanıcı kimliklerinde UUID listesi çok işe yarar. Veritabanı birincil anahtarı olarak kullanılacaksa rastgele UUID'lerin dizinleme performansını etkileyebileceğini, bazı sistemlerin zamana göre sıralanabilir sürümleri tercih ettiğini bilmekte fayda var. Üretilen her değer yalnızca ekranınızda durur ve bir yere kaydedilmez.
Her üretimde tamamen yeni değerler elde edersiniz; aynı listeyi tekrar üretmek mümkün değildir. İhtiyacınız olan değerleri hemen kopyalayın. Üretilen UUID'ler sürüm 4 biçimine uyar, bu nedenle çoğu kütüphane ve veritabanı tarafından doğrulanır ve kabul edilir.