UUID Nedir? Dağıtık Sistemlerin Kimliği
UUID (Universally Unique Identifier), bilgisayar sistemlerinde bilgiye benzersiz bir kimlik atamak için kullanılan 128-bitlik bir sayıdır. Bu sayı dizisi, merkezi bir otoriteye ihtiyaç duymadan, aynı anda milyonlarca cihaz tarafından üretilse bile çakışma (collision) ihtimali olmayacak şekilde tasarlanmıştır. RFC 4122 standardına dayanan bu sistem, yazılım dünyasının temel taşlarından biridir.
UUID'nin Anatomisi (Hangi Bit Ne Anlama Gelir?)
Standart bir UUID (v4), 32 onaltılık sayıdan oluşur ve 4 tire ile ayrılır (8-4-4-4-12 formatı). Toplamda 36 karakterdir.
Burada M harfi UUID versiyonunu (örneğin v4 için 4), N harfi ise varyantı (genellikle 8, 9, a, b) belirtir. Geri kalan tüm karakterler rastgele veya zamana bağlı verilerden oluşur.
UUID Versiyonları ve Kullanım Alanları
v1: Zaman ve Lokasyon
Bilgisayarın MAC adresini ve geçerli zaman damgasını kullanır. Kimin, nerede, ne zaman ürettiği bilinir. Gizlilik hassasiyeti olan projelerde önerilmez.
v4: Tam Rastgele
Dünyada en çok kullanılan versiyondur. 122 bit tamamen rastgeledir. Tahmin edilemezliği en yüksek olan sürümdür.
v3 & v5: İsim Bazlı (Hashing)
Bir metni (Örn: "kullanici1") alıp MD5 veya SHA-1 ile hash'leyerek UUID üretir. Aynı isim girildiğinde her zaman AYNI UUID'yi üretir.
v7: Geleceğin Standardı (Sıralı)
Unix zaman damgasıyla başlar. Veritabanı index performansı için kritiktir. 2026 itibariyle standartlaşma sürecindedir.
Yazılımda UUID Kullanımı (Örnek Kodlar)
Farklı dillerde UUID v4 üretmek oldukça basittir:
crypto.randomUUID();import uuid; print(uuid.uuid4())CREATE EXTENSION "uuid-ossp"; SELECT uuid_generate_v4();Güvenlik: Neden UUID Kullanmalıyız?
Geleneksel veritabanı ID'leri (1, 2, 3...) sisteminizin büyüklüğünü ifşa eder (Enumeration Attack). Eğer URL'nizde `hesap.com/faturalar/105` yazıyorsa, kötü niyetli bir kullanıcı `106` veya `104` numaralı faturaya erişmeye çalışarak sisteminizi test edebilir.UUID (v4) kullanıldığında ise URL `hesap.com/faturalar/a1b2c3d4-e5f6...` şeklinde görünür. Bir sonraki ID'yi tahmin etmek milyarlarca yıl bilgisayar gücü gerektirir.
Performans Uyarısı: Index Parçalanması (Fragmentation)
UUID v4 tamamen rastgele olduğu için, veritabanı index'lerine (B-Tree) eklenirken verinin rastgele yerlere yazılmasına neden olur. Bu durum, veri büyüdükçe yazma performansının düşmesine (Page Split) ve disk kullanımının artmasına yol açar.Çözüm: Veritabanı seviyesinde ya birincil anahtarı (Primary Key) `INT` tutup UUID'yi `Index Only` kolon yapmak ya da UUID v7 gibi sıralı sürümlere geçmektir.
Özet ve Pratik Kullanım
Adet sayısını seçin (1-10), üret butonuna basın. Araç RFC 4122 uyumlu UUID v4 üretir. Her UUID 36 karakter (32 hex + 4 tire), 128 bit rastgele veri içerir. Kopyala butonu ile panoya alıp kodunuza yapıştırabilirsiniz. Veritabanı primary key, API token, dosya adı gibi benzersiz kimlik gerektiren her yerde kullanılır. Çakışma pratikte imkansızdır; 2¹²² olası kombinasyon vardır.
Güvenlik ve Örnekleme
UUID v4 kriptografik olarak güvenli rastgele sayı üreticisi (CSPRNG) kullanmalıdır. JavaScript crypto.randomUUID() ve Python uuid.uuid4() bu kriteri sağlar. Örneklemede aynı ID'nin tekrar üretilme olasılığı 2⁻¹²² civarındadır; pratikte çakışma yaşanmaz. ULID, NanoID gibi alternatif formatlar da vardır; UUID en yaygın standarttır.
UUID v3 ve v5: Deterministik ID
İsim (namespace + name) verdiğinizde aynı girdi her zaman aynı UUID'i üretir. Bu özellik önbellek anahtarları, dosya yolundan türetilmiş ID'ler için kullanışlıdır. v3 MD5, v5 SHA-1 hash kullanır. Veritabanında sıralı ekleme istiyorsanız UUID v7 tercih edin; zaman damgası ile başlar, index performansı daha iyidir.
Mikroservis ve Dağıtık Sistemlerde UUID
Birden fazla sunucu veya veritabanı şeması aynı anda kayıt eklediğinde sıralı ID çakışma riski taşır. UUID v4 her node'un bağımsız ID üretmesine olanak tanır; merkezi koordinasyona gerek yoktur. REST API tasarımında URL'de sıralı ID yerine UUID kullanmak enumeration saldırılarını zorlaştırır. Base64 encoder ve hash hesaplama araçları ile UUID'yi farklı formatlara dönüştürebilirsiniz.
ULID ve NanoID Alternatifleri
ULID (Universally Unique Lexicographically Sortable Identifier) 128 bit, Base32 kodlu ve zamana göre sıralıdır. NanoID daha kısa (21 karakter), URL-friendly ve hızlı üretilir. UUID v4 en yaygın standarttır; mevcut sistemlerle uyumluluğu yüksektir. Şifre oluşturucu ve rastgele sayı üreteçleri de benzer kriptografik kaynak kullanır.
Bu araç tarayıcıda crypto.getRandomValues() kullanarak sunucuya veri göndermeden UUID üretir. Toplu üretim için adet seçin ve kopyala butonu ile panoya alın. Veritabanı migration, test verisi veya API geliştirme için pratik çözüm sunar.
Test ve Geliştirme Ortamları
Mock verisi oluştururken, integration testlerinde veya staging ortamında UUID kullanımı yaygındır. API endpoint'lerinde resource ID'leri UUID olarak expose etmek güvenlik standartlarına uygundur. MD5 hash ve Base64 encoder araçları ile UUID'yi farklı amaçlarla işleyebilirsiniz. Bu araç sunucuya veri göndermeden client-side üretim yapar; gizlilik korunur. PostgreSQL, MongoDB, MySQL gibi veritabanlarında UUID kolon tipi desteklenir. UUID v4 ile primary key oluşturmak dağıtık sistemlerde güvenli ve pratik çözümdür. RFC 4122 standardı tüm modern dillerde desteklenir; kopyala-yapıştır ile projenize ekleyin. Bu araç toplu UUID üretimi destekler; veritabanı seed verisi için idealdir.
Geliştiriciler İçin Özet
"Hız gerekiyorsa sıralı ID (Sequential), güvenlik ve dağıtık yapı gerekiyorsa UUID v4, veritabanı performansı + benzersizlik gerekiyorsa UUID v7 kullanın."
API Tasarımı: Modern REST API'lerde dış dünyaya açılan ID'lerin her zaman UUID olması, sistem güvenliğinin birinci kuralıdır.
UUID Oluşturucu Aracı Hakkında
RFC 4122 uyumlu, veritabanı PK (Primary Key) olarak kullanıma uygun, 128-bitlik benzersiz tanımlayıcılar üretin.
UUID Oluşturucu Aracı Nasıl Kullanılır?
Üretmek istediğiniz adet sayısını seçin
Tire (-) ayracı kullanımını belirleyin
Büyük/Küçük harf tercihini yapın
Saniyeler içinde kopyalayıp projenize ekleyin
UUID Oluşturucu Aracı Özellikleri
- Kriptografik Rastgelelik (OS Level)
- RFC 4122 Standardı Uyumu
- Bulk (Toplu) Üretim Desteği
- Zero-Server Interaction (Güvenli)
- GUID Uyumluluğu
Sıkça Sorulan Sorular
UUID ve GUID arasındaki fark nedir?
Aslında ikisi aynı şeydir. Microsoft dünyasında GUID (Globally Unique Identifier), diğer sistemlerde (Linux, Java vb.) UUID (Universally Unique Identifier) olarak adlandırılır. İkisi de 128-bitlik değerlerdir ve aynı RFC 4122 standardını takip ederler.
UUID v4 çakışma (collision) ihtimali nedir?
İhtimal o kadar düşüktür ki ihmal edilebilir. Bir yıl boyunca saniyede 1 milyar UUID üretseniz bile, bir çakışma yaşama ihtimaliniz 3 milyarda 1'dir. Bu, evrendeki atom sayısı ile kıyaslanabilecek kadar düşük bir olasılıktır.
UUID veritabanını yavaşlatır mı?
Evet, rastgele (random) UUID'ler sıralı olmadığı için klasik indexleme (B-Tree) performansını düşürebilir. Bu sorunu çözmek için sıralı olan UUID v7 veya ULID gibi alternatifler tercih edilir.
Bu araçta üretilen UUID'ler güvenli mi?
Evet, bu araç tarayıcınızın kriptografik olarak güçlü rastgele sayı üreticisi (window.crypto.getRandomValues) kullanır. Üretilen ID'ler hiçbir sunucuya gönderilmez, tamamen cihazınızda anonim olarak oluşturulur.