3 puan yazan GN⁺ 2024-08-27 | 1 yorum | WhatsApp'ta paylaş
  • UUID'nin çeşitli sürümleri

    • UUID Version 1 (v1): zaman damgası, monoton sayaç ve MAC adresiyle oluşturulur
    • UUID Version 2 (v2): güvenlik kimlikleri için ayrılmıştır. Ayrıntıları pek bilinmez
    • UUID Version 3 (v3): verilen verinin MD5 hash'iyle oluşturulur. DNS ve URL aday veri olarak önerilir
    • UUID Version 4 (v4): tamamen rastgele verilerle oluşturulur. Çoğu kişinin UUID denince aklına gelen sürümdür
    • UUID Version 5 (v5): verilen verinin SHA1 hash'iyle oluşturulur. v3'te olduğu gibi DNS ve URL aday veri olarak önerilir
    • UUID Version 6 (v6): zaman damgası, monoton sayaç ve MAC adresiyle oluşturulur. v1 ile aynı veriyi kullanır, ancak oluşturulma zamanına göre sıralanabilmesi için düzeni değiştirilmiştir
    • UUID Version 7 (v7): zaman damgası ve rastgele verilerle oluşturulur
    • UUID Version 8 (v8): tamamen kullanıcı tanımlıdır (zorunlu sürüm/variant alanları hariç)
  • Ne zaman kullanılmalı

    • v4: rastgele bir kimliğe ihtiyaç duyduğunuzda kullanın. Varsayılan seçim olarak uygundur
    • v7: sıralama gerektiğinde kullanın. Örneğin veritabanı anahtarı olarak kullanmak için uygundur
    • v5 veya v8: benzersiz veriyi UUID içine dahil etmek istediğinizde kullanın. Gerekirse bunu zaten anlarsınız
  • Diğer sürümler hakkında açıklamalar

    • v7, v1 ve v6'nın geliştirilmiş halidir; mümkünse v7 kullanmak daha iyidir. Bu yüzden v1 veya v6 genelde kullanılmaz
    • v2, güvenlikle ilgili kullanım için ayrılmıştır. Kullanıyorsanız ayrıntılarını bilme ihtimaliniz düşüktür
    • v3'ün yerini v5 almıştır. v5 daha güçlü bir hash kullanır

GN⁺ özeti

  • UUID'nin çeşitli sürümleri vardır ve her sürüm belirli kullanım amaçları için tasarlanmıştır
  • v4 ve v7 en yaygın kullanılan sürümlerdir; v5 ve v8 ise belirli veri gereksinimleri olduğunda kullanılır
  • UUID sürümü seçimi kullanım amacına göre değişir; sıralama gerekiyorsa v7, rastgele kimlik gerekiyorsa v4 iyi bir seçimdir
  • UUID'nin farklı sürümlerini anlamak, projeniz için uygun UUID'yi seçmenize yardımcı olur

1 yorum

 
GN⁺ 2024-08-27
Hacker News görüşleri
  • UUID Version 2 (v2), güvenlik ID'leri için ayrılmıştır ve ayrıntıları hakkında pek fazla şey bilinmez

    • Bunun nedeni RFC belgesinin muğlak yazılmış olmasıdır
    • Open Group belgelerine bakarak daha fazla bilgi edinilebilir
    • "version 0" UUID'ler de vardır ve bunlar daha sonra diğer sürümlerin uyumlu olmasına katkı sağlamıştır
    • Araştırma sonuçları GitHub'da görülebilir
  • UUID v2'nin ayrıntıları RFC 9562 belgesinde kolayca bulunabilir

    • DCE'nin bir parçası olarak tanımlanmıştır ve ilgili bağlantıya tıklayarak ayrıntılar görülebilir
    • Bağlantıya tıklamak önemlidir
  • UUID v7'nin zaman damgası, Databend'de metadata dosyalarını hızlıca bulmak için faydalıdır

    • AWS S3 üzerindeki işlem hızını büyük ölçüde artırır
    • İlgili PR GitHub'da görülebilir
  • Keşke kısa UUID'ler için bir standart olsaydı

    • Örnek: 73WakrfVbNJBaAmhQtEeDv veya bK7nP9xM
    • Kısa ve hatırlaması kolay ID'lere ihtiyaç var
  • UUID2'nin amacını anlamak zor

    • Xandr'da kişisel verileri silme talebinde bulunurken UUID2 ile karşılaştım
    • Wikipedia sayfasını okusam da neden çeşitli UUID türlerine ihtiyaç duyulduğunu anlamak zor
    • MAC koduyla karıştırılmasının UUID2'nin rastgeleliğini artırmasının nedeni mi olduğu, yoksa başka bir sebebi mi olduğu merak ediliyor
    • Gizlilik için çok uzun tanımlayıcılar kullanılırsa, çakışmayan UUID'ler kullanılabilir
  • UUID v4, basitçe rastgele bayt üreten bir üreticidir

    • Tireleri, sürüm bilgisini vb. atlayıp rastgele bayt üretmek daha verimlidir
  • MAC tabanlı sürümleri kullanmamak daha iyidir

    • Teorik olarak bu, v4 ve v7 dışındaki tüm sürümler için geçerlidir
    • Özellikle v1 en kötüsüdür ve v3'teki MD5 de çok zayıftır
  • SHA256 verisi ve sayaç kullanan bir UUID faydalı olabilir

    • PBKDF2'ye benzer şekilde gizliliği koruyan bir tanımlayıcı olarak kullanılabilir
  • v7 kullanmak iyi olur

    • Güvenlik uzmanları buna karşı çıkabilir
  • İlgi çekici bir okumaydı

    • Her gün yeni bir şey öğrenilebilir