UUID Oluşturucu
Tarayıcınızda bir ya da 100'e kadar rastgele sürüm 4 UUID'yi anında oluşturun. Kaç tane gerektiğini seçin, büyük veya küçük harfli onaltılık gösterim arasında geçiş yapın ve sonuçları tireli ya da tiresiz kopyalayın.
UUID Oluşturucu (v4)
UUID v4 Formülü
Burada:
- \(x\) — rastgele bir onaltılık basamak (0–9, a–f), toplam 122 rastgele bit
- \(4\) — UUID sürüm 4'ü gösteren sabit sürüm yarımbaytı (nibble)
- \(y\) — varyant basamağı; yalnızca 8, 9, a (A) veya b (B) olabilir
Sürüm 4 bir UUID, 128 rastgele bitten oluşur. Bu bitlerden altısı rastgele değildir: dört bit sürümü kodlar (0100, yani 4 basamağı) ve iki bit varyantı kodlar (10); 13. onaltılık basamağın her zaman 4, 17. basamağın ise her zaman 8, 9, a veya b olmasının nedeni budur. Geriye \(122\) rastgele bit kalır; bu da \(2^{122} \approx 5.3 \times 10^{36}\) olası değer demektir.
UUID Oluşturucu – Hesaplama Örneği
Örnek: varsayılan ayarlarla (Sürüm: v4, Büyük harf işaretli, tireler korunuyor) 5 UUID oluşturun. Tipik bir sonuç şöyle görünür:
\[ \\text{9F86D081-884C-4D15-9CE2-A1B2C3D4E5F6} \]
İki sabit konuma dikkat edin: üçüncü grubun ilk basamağı 4'tür (sürüm), dördüncü grubun ilk basamağı ise 8, 9, A, B değerlerinden biridir (varyant). Diğer tüm onaltılık karakterler rastgeledir.
Sonuç: kopyalamaya hazır, her satırda bir tane olmak üzere 5 UUID'lik bir liste — her biri farklıdır, ancak tümü RFC 4122 sürüm 4 düzenine uygundur.
Hesap makinesi nasıl kullanılır?
- İhtiyacınız olan UUID Sayısını girin (1 ile 100 arasında herhangi bir değer).
- Sürüm ayarını v4 (rastgele) olarak bırakın — bu araç rastgele sürüm 4 tanımlayıcıları üretir.
- Büyük harf (A–F) seçeneğini,
4F2Ayoksa4f2abiçiminde bir çıktı tercih ettiğinize göre işaretleyin ya da işaretini kaldırın. İkisi de geçerlidir; onaltılık gösterim büyük/küçük harfe duyarsızdır. - Tire istemiyorsanız Tireleri kaldır seçeneğini işaretleyin; her UUID düz bir 32 karakterlik dize olur (veritabanı sütunları veya tire sevmeyen kodlar için kullanışlıdır).
- Hesapla düğmesine basın. UUID Listesi, kolayca kopyalayabilmeniz için her satırda bir tanımlayıcı gösterir ve Oluşturulan Sayı kaç tane üretildiğini doğrular.
UUID nedir?
UUID (Universally Unique Identifier — Evrensel Benzersiz Tanımlayıcı), Windows sistemlerinde GUID (Globally Unique Identifier — Global Benzersiz Tanımlayıcı) olarak da adlandırılır; herhangi bir merkezi koordinasyon olmadan benzersiz olması için tasarlanmış 128 bitlik bir tanımlayıcıdır. Otomatik artan veritabanı kimliklerinin aksine, UUID'ler farklı sunucularda, cihazlarda veya çevrimdışı istemcilerde bağımsız olarak üretilebilir ve çakışma pratikte imkânsızdır: her değerde 122 rastgele bit bulunduğundan, tek bir kopyanın olma olasılığının bile fark edilir hale gelmesi için milyarlarca UUID üretmeniz gerekir.
UUID'ler, 8-4-4-4-12 düzeninde gruplanmış ve tirelerle ayrılmış 32 onaltılık basamak olarak yazılır; örneğin 550e8400-e29b-41d4-a716-446655440000. Birkaç sürüm vardır. Sürüm 1, bir zaman damgası ve makinenin MAC adresini gömer; sürüm 3 ve 5, tanımlayıcıyı MD5 veya SHA-1 özetlemesiyle bir isimden türetir; bu aracın ürettiği sürüm 4 ise tamamen rastgele sayılardan oluşur. Sürüm 4'ün bugün en yaygın kullanılan sürüm olmasının nedeni tam olarak budur: ne zaman ve nerede oluşturulduğu hakkında hiçbir bilgi sızdırmaz.
Sonuç şu şekilde yorumlanır: 8-4-4-4-12 düzenine uyan, sürüm konumunda 4 ve varyant konumunda 8, 9, a veya b içeren her dize geçerli bir v4 UUID'dir. Bunu doğrudan birincil anahtar, API anahtarı bileşeni, dosya adı, istek kimliği veya asla tekrar etmemesi gereken başka herhangi bir tanımlayıcı olarak kullanabilirsiniz.
Pratik ipuçları ve sınırlamalar
- Rastgelelik kalitesi: oluşturucu, tarayıcınızın
crypto.getRandomValues()API'sini, yani kriptografik olarak güvenli bir rastgele kaynak kullanır. Çok eski tarayıcılar dışında düzMath.random()'a güvenmez. - Her şey yereldir: UUID'ler cihazınızda oluşturulur ve asla bir sunucuya gönderilmez; bu yüzden hassas amaçlar için güvenle kullanılabilirler.
- Harf büyüklüğü önemli değildir:
9F86...ve9f86...aynı UUID'dir. Projenizin stiline uygun büyük/küçük harf biçimini seçin — birçok sistem bunları küçük harfle depolar. - Parola değildir: bir UUID rastgeledir, ancak 122 biti benzersizlik için, parola gücü için değil, yapılandırılmıştır. Gizli bilgiler için bunun yerine özel bir Parola Oluşturucu kullanın.
- Özet (hash) değildir: bir UUID tanımlar, doğrulamaz. Bir verinin sabit parmak izine ihtiyacınız varsa, doğru araç bir SHA-256 özeti veya MD5 özetidir — aynı girdi her zaman aynı özeti üretirken, bu oluşturucu her seferinde yeni bir değer üretir.
- Sürüm desteği: şu anda yalnızca sürüm 4 desteklenmektedir; zamana dayalı (v1) ve isme dayalı (v3, v5) UUID'ler burada oluşturulamaz.
UUID sürüm ve varyant alanları bir bakışta
| UUID içindeki konum | Değer | Anlamı |
|---|---|---|
| 13. basamak (3. grubun ilk basamağı) | 4 | Sürüm 4 — rastgele oluşturulmuş |
| 17. basamak (4. grubun ilk basamağı) | 8, 9, a, b | Varyant 10xx — standart RFC 4122 düzeni |
| Tüm diğer basamaklar | 0–9, a–f | Tamamen rastgele |
Tanımlayıcılarınızın yanında veri kodlamanız ya da iletmeniz de gerekiyorsa, Base64 Kodlayıcı bu veriyi güvenle paketlemenize yardımcı olabilir.
Sıkça Sorulan Sorular
UUID v4'ü elle ya da kendi kodumda nasıl oluşturabilirim?
16 rastgele bayt (128 bit) alın, ardından iki yarımbaytı (nibble) üzerine yazın: sürüm için 7. baytın (1'den sayarak) yüksek yarımbaytını 0100 yapın ve varyant için 9. baytın en üstteki iki bitini 10 yapın. Baytları onaltılık olarak 8-4-4-4-12 gruplamasıyla yazın. Kod tarafında çoğu dilde yerleşik bir işlev vardır; örneğin JavaScript'te crypto.randomUUID(), Python'da uuid.uuid4() — elle bit işlemine gerek yoktur.
Oluşturulan iki UUID'nin çakışma olasılığı nedir?
Her UUID'de 122 rastgele bit bulunduğundan, gerçekçi hacimlerde çakışma astronomik ölçüde düşük bir olasılıktır. 1 milyar UUID üretildikten sonra bile herhangi bir kopya olma olasılığı hâlâ yaklaşık 100 milyarda 1'dir; 103 trilyon UUID'de kabaca milyarda 1'e ulaşır. Günlük kullanımda — kullanıcı kimlikleri, sipariş numaraları, API anahtarları — sürüm 4 UUID'leri herhangi bir merkezi kontrol olmadan benzersiz kabul edebilirsiniz.
UUID ile GUID aynı şey midir?
Pratikte evet. GUID (Globally Unique Identifier), Microsoft'un Windows, SQL Server ve .NET genelinde kullandığı terimdir; UUID ise RFC 4122 standardından gelir. SQL Server'da NEWID() ya da .NET'te Guid.NewGuid() ile üretilen bir GUID, aynı 8-4-4-4-12 biçimine sahip bir sürüm 4 UUID'dir; yani iki ad aynı tanımlayıcıyı ifade eder ve birbirinin yerine kullanılabilir.
Her UUID'nin 13. basamağı neden her zaman 4, 17. basamağı neden her zaman 8, 9, a veya b'dir?
Bu konumlar rastgele değildir — üst veri taşır. 13. onaltılık basamak sürümü kodlar (ikilik sistemde 0100 = 4) ve UUID'nin rastgele sayılardan oluşturulduğunu kullanıcılara bildirir. 17. basamak varyantı kodlar (ikilik 10xx); bu da onu 8, 9, a veya b ile sınırlar ve düzeni standart RFC 4122 Leach–Salz biçimi olarak işaretler. Bu konumlardan herhangi biri farklıysa, dize geçerli bir v4 UUID değildir.
Bir dizenin geçerli bir UUID olup olmadığını nasıl kontrol ederim?
8-4-4-4-12 gruplamasında 32 onaltılık basamak düzeniyle eşleştirin. Yaygın bir normal ifade şudur: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ (büyük/küçük harfe duyarsız). Özellikle sürüm 4'ü doğrulamak için ayrıca üçüncü grubun başında 4 ve dördüncü grubun başında 8, 9, a veya b olmasını şart koşun. Birçok dil doğrulayıcılar içerir; örneğin Python'daki uuid.UUID(value), hatalı biçimli girdide hata verir.
Bir UUID'yi veritabanı birincil anahtarı olarak kullanmak güvenli midir?
Evet ve dağıtık sistemlerde anahtarlar koordinasyon olmadan çevrimdışı oluşturulabildiği için yaygın bir tercihtir. İki ödün vardır: UUID'ler ikili sütunda 16 bayt (metin olarak 36 karakter) yer kaplar; tamsayı içinse bu 4–8 bayttır. Ayrıca rastgele v4 değerleri B-tree dizinlerini parçalar ve sıralı anahtarlara göre daha fazla sayfa bölünmesine yol açar. Mümkünse bunları yerel UUID/ikili sütunda depolayın ve yoğun yazılan tablolar için sıralı UUID varyantlarını değerlendirin.
Bazı UUID'ler neden küme parantezleri içinde ya da urn:uuid: önekiyle görünür?
Bunlar yalnızca alternatif metinsel kodlamalardır, farklı tanımlayıcılar değildir. Microsoft araçları GUID'leri çoğunlukla {550e8400-e29b-41d4-a716-446655440000} biçiminde yazdırır ve RFC ayrıca urn:uuid:550e8400-e29b-41d4-a716-446655440000 URN biçimini tanımlar. Parantezler, önek ve tireler yalnızca sunumla ilgilidir — altta yatan 128 bit her biçimde aynı olduğundan, depolamadan veya karşılaştırmadan önce bunları kaldırın.