Ana içeriğe geç
FreeOnlineTools Go
Türkçe
Karşılaştırmak

UUID v1 vs v4 vs v5: Hangi Sürümü Seçmelisiniz?

FreeOnlineTools Team tarafından · 2026-08-28 güncellendi

Hızlı Yanıt

Default olarak UUID v4 (random) kullanın —koordinasyon gerektirmez ve ihmal edilebilir collision riski vardır. Time-orderable ID'lere ihtiyaç duyduğunuzda v1 (time-based) kullanın. Deterministic ID'ler için v5 (namespace+name) kullanın. Herhangi bir sürümü ücretsiz UUID Generator ile üretin.

giriiş

UUID (Universally Unique Identifier), 8-4-4-4-12 hex gruplarında 36 karakter olarak render edilen 128-bit identifier'dır, örn. 123e4567-e89b-12d3-a456-426614174000. RFC 9562 birkaç sürüm tanımlar; en çok karşılaşacağınız üçü v1 (time + MAC), v4 (random) ve v5 (namespace + name, SHA-1). Her biri benzersizlik garantileri, sıralanabilirlik ve determinism arasında farklı trade-off yapar.

Adım adım

  1. UUID v1 —zaman ve düğüm tabanlı

    v1, geçerli 60 bitlik zaman damgasını (1582-10-15'ten bu yana 100 ns aralıklarla) ve 48 bitlik düğüm kimliğini (genellikle MAC adresi) kodlar. Aynı düğümde oluşturulan kimlikler monoton olarak artar ve zamana göre sıralanabilir. Risk: MAC adresi donanım kimliğini sızdırır ve düğümler arasındaki saat çarpıklığı sıralamayı bozabilir.

  2. UUID v4 —rastgele

    v4, 122 rastgele bit kullanır (sürüm/varyant için 6 bit sabittir). 122 rastgele bit ile 2,71 trilyon kimlik arasında çarpışma olasılığı %50'dir; herhangi bir gerçekçi iş yükü için şans fiilen sıfırdır. v4'ün koordinasyona ihtiyacı yoktur ve hiçbir ana bilgisayar bilgisini göstermez, bu da onu en güvenli varsayılan haline getirir.

  3. UUID v5 —ad alanı ve ad (SHA-1)

    v5, deterministik 128 bitlik bir kimlik üretmek için UUID ad alanını ve SHA-1 ile bir ad dizesini karma hale getirir. Aynı (ad alanı, ad) çifti her zaman aynı UUID sonucunu verir; bu, tekilleştirme ve doğal anahtarlardan türetilen kararlı kimlikler için idealdir. v3 aynı fikirdir ancak MD5 kullanır (bundan kaçının).

  4. Takasları karşılaştırın

    v1 sıralanabilir ancak MAC sızdırıyor ve saat senkronizasyonu gerektiriyor. v4 rastgele ve özeldir ancak sıralanamaz. v5 deterministiktir ve tekilleştirir ancak rastgele değildir; adı tahmin etmek, saldırganın UUID dosyasını yeniden üretmesine olanak tanır. Sıralama, rastgelelik veya determinizme ihtiyacınız olup olmadığına göre seçim yapın.

  5. Durumunuz için doğru sürümü seçin

    Veritabanı birincil anahtarları: v4 (veya zaman sıralaması için daha yeni sistemlerde v7). Koordinasyonu olmayan dağıtılmış sistemler: v4. Doğal bir anahtardan gelen deterministik kimlikler (ör. URL →UUID): v5. Güvenli rastgele düğüm kimliğine sahip zaman sırası: v1'den yararlanan denetim günlükleri.

Örnekler

UUID v1 (zamana dayalı, sıralanabilir)

Giriş: 2026-08-28T12:00:00Z tarihinde 00:11:22:33:44:55 düğümünde oluşturuldu

Çıkış: 1ef7c1d0-2d3b-11f0-8000-001122334455 (sürüm basamağı '1', zamana göre sıralanabilir)

UUID v4 (rastgele)

Giriş: Random generation

Çıkış: f47ac10b-58cc-4372-a567-0e02b2c3d479 (sürüm basamağı '4', rastgele bitler)

UUID v5 (ad alanı+addan belirleyici)

Giriş: Ad alanı DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8) + adı 'freeonlinetoolsgo.com'

Çıkış: 74738ff5-5367-5958-9aeb-0c1f1f1f1f1f (aynı giriş her zaman aynı çıktıyı verir)

Yaygın Sorunlar

  • UUID'leri yerel 16 baytlık BINARY/UUID türü yerine VARCHAR(36) olarak depolamak: bu, 2 kat depolama israfına neden olur ve dizin performansını bozar. Mümkün olduğunda yerel bir UUID sütun türü kullanın.
  • Düğüm kimliğini güvence altına almadan v1'i kullanmak: Varsayılan MAC adresi donanım kimliğini sızdırır ve gizlilik açısından endişe vericidir. Bunu, düğüm başına kriptografik olarak rastgele 48 bitlik bir değerle değiştirin.
  • V4 çarpışmalarının imkansız olduğunu varsayarsak: öyle değil; yalnızca astronomik olarak olası değiller. 122 rastgele bit ile %50 şans için ~2,71 trilyon kimliğe ihtiyacınız var. 1 milyar kimlik için şans ~0,0000000000000001'dir.
  • V5 (SHA-1 tabanlı) yerine v3 (MD5 tabanlı) kullanılması: MD5 bozuk olduğundan v5 tercih edilir. Her ikisi de deterministiktir ancak v5'in çarpışma direnci daha güçlüdür.

İpuçları

  • Neredeyse her kullanım durumu için varsayılan olarak v4'tür; rastgeledir, özeldir ve herhangi bir koordinasyon olmadan çarpışmaya karşı dayanıklıdır.
  • Zamana göre sıralanabilen rastgele kimliklere ihtiyacınız varsa, Unix zaman damgasını rastgele bitlerle birleştiren UUID v7'ye (RFC 9562, 2024) bakın; modern veritabanları için v1'den daha iyidir.
  • Doğal anahtarlardan (URLs, e-posta adresleri) kararlı kimlikler oluşturmak için v5'i kullanın, böylece aynı giriş her zaman aynı UUID ile eşleşir; tekilleştirme ve bağımsız APIs için kullanışlıdır.
  • Sunucuya gidip gelmeyi önlemek için mümkün olduğunda istemcide UUID'ler oluşturun — UUID Oluşturucumuz, crypto.getRandomValues() kullanarak tamamen tarayıcınızda çalışır.

İlgili Araçlar

İlgili Kılavuzlar

Referanslar