UUID / GUID Üretici
Standart UUID v4 (rastgele) ve nanoid formatlarında benzersiz tanımlayıcılar üretir. Toplu üretim destekli. Tarayıcıda anında çalışır, kayıt gerekmez, ücretsizdir.
UUID Üretici
v4 + NanoIDUUID / GUID Nedir?
UUID (Universally Unique Identifier) veya GUID (Globally Unique Identifier), teorik olarak çakışma olasılığı sıfıra yakın olan 128-bit'lik benzersiz tanımlayıcılardır. 32 hexadecimal karakter + 4 tireden oluşur, toplamda 36 karakterlik bir string'tir:
550e8400-e29b-41d4-a716-446655440000
UUID, RFC 4122 standardıyla tanımlanmıştır. 5 farklı versiyonu vardır, her biri farklı yöntemlerle üretilir ve farklı kullanım senaryolarına uyar.
UUID Versiyonları
UUID v1 — MAC Adresi + Zaman
Bilgisayarın MAC adresi ve mevcut zaman bilgisinden üretilir. Tahmin edilebilir, privacy kaygısı olan yerlerde kullanılmaz. Eskiden veritabanı kayıtlarında yaygın kullanılırdı.
UUID v3 ve v5 — Namespace + İsim
İsim alanı (namespace) UUID'si ve bir isim string'inden hash ile üretilir. v3 MD5 kullanır, v5 SHA-1. Aynı namespace + aynı isim her zaman aynı UUID'yi verir (deterministic). Aynı verinin iki kere işlenmesini önlemek için kullanışlıdır.
UUID v4 — Rastgele
Tamamen rastgele üretilir, en yaygın kullanılan versiyondur. Bir kullanıcı, oturum, geçici dosya için kimlik üretmek istediğinizde v4 standarttır. Rastgele 122 bit içerir (6 bit versiyon ve varyant bilgisi için ayrılmış). 5,3 × 10^36 farklı kombinasyon mümkün.
UUID v7 — Yeni: Zaman Sıralı
2024'te standartlaşan yeni versiyondur. Başlangıçta UNIX timestamp (millisaniye) içerir, sonrası rastgele. Veritabanı index'lerinde performans için ideal — kronolojik sıralı UUID'ler index'lerde daha az kırılganlık üretir. UUID v4'ün rastgele dağılımı veritabanlarında yavaşlamaya yol açabilir, v7 bu sorunu çözer.
UUID Çakışma Olasılığı
UUID v4'te 122 bit rastgele veri vardır. Doğum günü paradoksuna göre, %50 çakışma olasılığı için 2,71 × 10^18 UUID üretmeniz gerekir — saniyede 1 milyar üretseniz bile 85 yıl sürer. Pratikte UUID çakışması mümkün değildir.
UUID Nerelerde Kullanılır?
- Veritabanı Birincil Anahtarları: Auto-increment yerine UUID kullanarak distributed sistemler arası kolayca veri taşıyabilirsiniz
- API Request ID: Her isteği takip etmek için (logging, tracing)
- Geçici Dosya İsimleri:
upload-550e8400-e29b-41d4.tmp - Session ID: Kullanıcı oturum tanımlayıcıları
- Transaction ID: Ödeme sistemleri, banking
- Cache Key: Redis/Memcached anahtarları
- JWT jti Claim: Token tekilleştirme
- Dosya Yükleme: S3, CDN'lerde benzersiz dosya yolları
UUID vs Auto-Increment Karşılaştırması
| Kriter | UUID | Auto-Increment |
|---|---|---|
| Tahmin edilebilirlik | Yok ✓ | Tahmin edilebilir |
| Boyut | 16 byte | 4-8 byte ✓ |
| Distributed Sistemler | İdeal ✓ | Çakışma riski |
| URL'de Görünüm | Çirkin | Temiz ✓ |
| Index Performansı (v4) | Kötü | İyi ✓ |
| Index Performansı (v7) | İyi ✓ | İyi ✓ |
UUID Üretim Güvenliği
UUID üretirken kullanılan rastgele sayı üreteci (RNG) kriptografik olarak güvenli olmalıdır:
- İyi:
crypto.randomUUID()(browser/Node.js),secrets(Python),random_bytes()(PHP 7+) - Kötü:
Math.random(),rand()— predictable, brute force'a açık
Bizim aracımız tarayıcının crypto.getRandomValues() API'sini kullanır, güvenlidir.
Sıkça Sorulan Sorular
UUID ile GUID aynı şey midir?
Hangi UUID versiyonu yeni proje için en iyisi?
UUID veritabanında neden index performansını düşürür?
UUID URL'de güvenli mi?
Bir milyon UUID üretsem çakışma olur mu?
İlgili Araçlar
- Hash Üretici (MD5, SHA) — UUID v3/v5 hash kullanır
- Rastgele Şifre — Diğer rastgele üretici
- Base64 Encode — UUID'yi kısaltmak için
- JWT Decoder — jti claim için UUID
İlgili Araçlar
Base64 Encode / Decode
Metni Base64 formatına şifreleyin veya Base64 kodu düz metne çözün. UTF-8 ve Türkçe karakter destekli.
🛡Bcrypt Hash Üretici
Şifrelerinizi bcrypt algoritmasıyla hash'leyin veya bir bcrypt hash'i şifre ile karşılaştırın. Cost faktörü ayarlanabilir.
📦CSS / JS Sıkıştırıcı
CSS ve JavaScript kodunu sıkıştırın. Boşluk, yorum ve gereksiz karakterleri kaldırarak dosya boyutunu küçültür.