UUID sürümü nedir?

UUID (Evrensel Olarak Benzersiz Tanımlayıcı), RFC 4122 ve RFC 9562 tarafından standartlaştırılmış 128 bitlik bir tanımlayıcıdır. Her UUID, nasıl oluşturulduğunu belirten bir sürüm alanı içerir. Sürüm, 13. onaltılık basamakta (7. baytın yüksek nibble'ı) kodlanır ve tanımlayıcıyı oluşturmak için kullanılan algoritmayı ve veri kaynaklarını belirler.

Şu anda sekiz tanımlı sürüm (v1'den v8'e kadar) ve iki özel form bulunmaktadır: Nil UUID (tümü sıfır) ve Max UUID (tümü bir). Her sürüm farklı bir amaca hizmet eder — bazıları kronolojik sıralama için zaman damgası içerir, bazıları deterministik üretim için kriptografik hash kullanır, diğerleri ise basitlik için rastgele sayılara dayanır. Sürümü bilmek, bir UUID'nin özelliklerini, güvenlik etkilerini ve amaçlanan kullanım senaryosunu anlamanıza yardımcı olur.

Ayrı olarak kodlanan varyant alanı, tanımlayıcının hangi UUID spesifikasyonuna uyduğunu belirtir. Modern UUID'lerin çoğu RFC 4122/RFC 9562 varyantını kullanır, ancak eski sistemler NCS veya Microsoft varyantları üretebilir.

Araç açıklaması

Bu araç, herhangi bir UUID'yi girdi olarak alır ve sürüm numarasını, sürüm adını, varyantını, üretim yöntemini ve o sürümün nasıl çalıştığına dair ayrıntılı bir açıklamayı tanımlar. Tüm standart sürümleri (v1'den v8'e kadar) ve Nil ile Max UUID'leri destekler. Bir UUID yapıştırmanız yeterli; anında tam dökümünü görürsünüz.

Örnekler

Girdi UUID Sürüm Ad
550e8400-e29b-41d4-a716-446655440000 4 Rastgele (v4)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 1 Zaman tabanlı (v1)
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 7 Unix Epoch zaman tabanlı (v7)
00000000-0000-0000-0000-000000000000 Nil Nil UUID
ffffffff-ffff-ffff-ffff-ffffffffffff Max Max UUID

Özellikler

  • v1'den v8'e kadar tüm UUID sürümlerini, Nil ve Max UUID'leri algılar
  • Varyantı tanımlar (RFC 4122/9562, NCS, Microsoft veya Ayrılmış)
  • Sürümün nasıl oluşturulduğunu açıklayan, insan tarafından okunabilir bir açıklama gösterir
  • UUID'yi üretmek için kullanılan üretim yöntemini görüntüler
  • Yazarken veya yapıştırırken anında gerçek zamanlı tanımlama yapar

Kullanım senaryoları

  • Dağıtık sistemlerde hata ayıklama: Günlüklerinizdeki UUID'lerin zaman tabanlı (v1/v6/v7) mi yoksa rastgele (v4) mi olduğunu belirleyerek çıkarabileceğiniz gömülü zaman damgaları taşıyıp taşımadığını anlayın.
  • Veritabanı optimizasyonu: Birincil anahtarlarınızın sıralanabilir bir UUID sürümü (v6, v7) mi yoksa indeks parçalanmasına yol açabilecek rastgele bir sürüm (v4) mü kullandığını belirleyin.
  • Güvenlik denetimi: MAC adresi veya zaman damgası sızdırabilecek v1 UUID'lerini tespit ederek bilgi ifşası risklerini değerlendirmenize yardımcı olun.

Nasıl çalışır

Araç, iki temel alanı çıkarmak için UUID'nin onaltılık yapısını ayrıştırır:

  1. Sürüm: 13. hex basamaktan okunur (soyulmuş hex string'inde indeks 12). Bu nibble, sürüm numarasını (1–8) doğrudan kodlar. Nil ve Max UUID'ler, tüm bitlerin sıfır mu yoksa bir mi olduğu kontrol edilerek algılanır.
  2. Varyant: 17. hex basamağın (indeks 16) en anlamlı bitleri tarafından belirlenir. Bit deseni, dört varyant ailesinden birine eşlenir: NCS, RFC 4122/9562, Microsoft veya Ayrılmış.

UUID sürümlerine genel bakış

Sürüm Ad Temel özellik
v1 Zaman tabanlı Zaman damgası + MAC adresi
v2 DCE Güvenlik Zaman damgası + MAC + POSIX UID/GID
v3 Ad tabanlı (MD5) Ad alanı + addan deterministik
v4 Rastgele 122 rastgele bit
v5 Ad tabanlı (SHA-1) Deterministik, v3'ten daha güçlü hash
v6 Yeniden sıralanmış zaman tabanlı v1'in sıralanabilir varyantı
v7 Unix Epoch zaman tabanlı Unix ms zaman damgası + rastgele, veritabanı anahtarları için ideal
v8 Özel Satıcıya özgü veya deneysel
Nil Nil UUID 128 bitin tamamı sıfıra ayarlı
Max Max UUID 128 bitin tamamı bire ayarlı

SSS

UUID sürümü ile varyant arasındaki fark nedir? Sürüm, üretim algoritmasını (zaman tabanlı, rastgele, hash tabanlı vb.) belirtirken; varyant, UUID'nin hangi spesifikasyona uyduğunu (RFC 4122, NCS, Microsoft) tanımlar. Karşılaşacağınız UUID'lerin büyük çoğunluğu RFC 4122/9562 varyantında olacaktır.

Hangi UUID sürümünü kullanmalıyım? Çoğu uygulama için v4 (rastgele), en basit ve en yaygın desteklenen seçenektir. Veritabanı birincil anahtarları için zamana göre sıralanabilir tanımlayıcılara ihtiyaç duyuyorsanız, v7 modern önerimizdir. Bir addan türetilmiş deterministik UUID'lere ihtiyaç duyduğunuzda v5'i kullanın.

Bu araç, UUID'den zaman damgasını çıkarabilir mi? Bu araç yalnızca sürümü ve varyantı tanımlar. v1, v6 veya v7 UUID'lerinden gömülü zaman damgalarını çıkarmak için özel UUID Zaman Çıkarıcı aracını kullanın.