UUID (Universally Unique Identifier), sistemler arasında çakışma ihtimali pratikte yok denecek kadar düşük olan 128-bit kimlik değeridir. Veritabanı anahtarları, log kayıtları, dosya isimleri, API nesneleri, event-id gibi yerlerde “global benzersiz” kimlik ihtiyacını karşılar.
Bu modül, UUID üretimini tamamen tarayıcı tarafında yapar. Böylece hassas isimler (domain, URL vb.) sunucuya gitmez.
NIL: Tamamı sıfır UUID. “Yok/boş” anlamı taşır.
V1: Zaman tabanlıdır. Klasik yaklaşım MAC adresi kullanabilir; bu araç gizlilik için random node kullanır.
V4: Rastgele üretimdir. Modern uygulamalarda en yaygın tercih.
V3: İsim tabanlı + MD5. Aynı namespace+isim aynı UUID üretir.
V5: İsim tabanlı + SHA-1. V3 mantığının daha güçlü hash ile hali.
V3/V5, üretimi “bağlama” (namespace) göre deterministik yapar. RFC standart namespace UUID’leri:
Özel bir ekosistemde kendi namespace UUID’ni seçip aynı kuralla üretimi tüm servislerinde tutarlı hale getirebilirsin.
Genel amaç için çoğu zaman V4 idealdir: basit, hızlı, çakışma riski çok düşük.
Deterministik kimlik istiyorsan (ör. “aynı domain her zaman aynı id olsun”), V5 kullan. (V3 de olur ama V5 daha tercih edilir.)
Zaman sıralı üretim gerekiyorsa (yaklaşık sıralama), V1 düşünülebilir.
UUID bir “güvenlik tokenı” değildir; tahmin edilemezlik gerektiren yerlerde ayrıca kriptografik token yaklaşımı kullan.
V3/V5’de isimler görünmez ama deterministiktir; birileri namespace+ismi biliyorsa aynı UUID’yi yeniden üretebilir.
Bu modülde V1 node alanı random seçilerek mahremiyet korunur.
Farklı sistemler farklı format ister: bazı API’ler urn:uuid: ister, bazı legacy sistemler tiresiz bekler. Bu yüzden aynı UUID’yi farklı sunum biçimlerinde alabilirsin. İçerik aynı, yazım farklıdır.