UUID ve GUID Nedir? Evrensel Benzersiz Tanımlayıcılar
UUID (Universally Unique Identifier) veya Microsoft ekosistemindeki adıyla GUID (Globally Unique Identifier), bilgisayar sistemlerinde herhangi bir merkezi kayıt otoritesine veya senkronizasyon protokolüne ihtiyaç duymadan dünya çapında benzersiz ID'ler üretmek için geliştirilmiş 128-bitlik bir standarttır (RFC 4122).
UUID v4 Neden En Popüler Standarttır? Çakışma Matematiği
UUID Versiyon 4, kriptografik olarak güvenli rastgele sayılar (CSPRNG) kullanılarak üretilir. 128 bitin 6 biti versiyon ve varyant bilgilerini taşırken kalan 122 bit tamamen rastgele entropiden oluşur. Bu da tam olarak 2122 (~5,3 x 1036) farklı olası kombinasyon demektir.
Matematiksel olarak bir çakışma (aynı UUID'nin iki kez üretilmesi) ihtimalinin %50'ye ulaşabilmesi için, dünya üzerindeki her insanın her saniye 1 milyar adet UUID üretmesi ve bunu aralıksız 85 yıl boyunca sürdürmesi gerekir. Bu sebeple UUID v4 pratik anlamda %100 benzersiz kabul edilir.
UUID Versiyonları Karşılaştırması
| Versiyon | Üretim Mantığı | Kullanım Alanı | Gizlilik Riski |
|---|---|---|---|
| UUID v1 | Zaman Damgası (Timestamp) + Cihaz MAC Adresi | Kronolojik sıralama gereken eski sistemler | Orta (Cihazın MAC adresini ifşa eder) |
| UUID v3 | MD5 Hash + Özel İsim Alanı (Namespace) | Aynı girdiye her zaman aynı UUID gerektiğinde | MD5 zayıflığı nedeniyle önerilmez |
| UUID v4 | Kriptografik Rastgele Sayı (CSPRNG) | Modern API'ler, Veritabanları, SaaS | Sıfır risk (Tamamen anonim ve güvenli) |
| UUID v5 | SHA-1 Hash + Özel İsim Alanı | Deterministik ID üretimi | Düşük |
| UUID v7 | Unix Epoch Zamanı + Kriptografik Rastgelelik | B-Tree index dostu sıralı modern veritabanları | Sıfır risk |
Veritabanlarında UUID vs Auto-Increment ID
Klasik MySQL veya PostgreSQL mimarilerinde AUTO_INCREMENT veya SERIAL tam sayıları kullanılır. Ancak modern dağıtık yazılım mimarilerinde UUID tercih edilmesinin temel nedenleri şunlardır:
- Dağıtık Mimari Desteği: Mikroservisler merkezi veritabanına sorgu atmadan kendi UUID'lerini oluşturabilir.
- Güvenlik ve IDOR Engelleme: Sıralı ID'lerde kötü niyetli bir kullanıcı
/api/orders/105adresinden/api/orders/106adresini tahmin edebilir. UUID ile bu saldırı imkansız hale gelir. - Veri Tabanı Birleştirme Kolaylığı: İki farklı şirketin veya şubenin veritabanları birleştirildiğinde ID çakışması yaşanmaz.
UUID / GUID Hakkında Sıkça Sorulan Sorular
crypto.getRandomValues() motorunu kullanır. Bu sayede üretilen tüm anahtarlar kriptografik seviyede tahmin edilemezdir.
Ölçeklenebilir Bulut ve Yazılım Mimarileri Geliştiriyoruz
inovoice; yüksek trafikli e-ticaret altyapıları, mikroservis API mimarileri ve güvenli veritabanı çözümleriyle işletmenizin teknoloji gücünü zirveye taşır.
Yazılım Ekibimizle Projenizi Konuşun