UUID

10 tools

ToolDeck'in UUID araçları, tüm önemli benzersiz tanımlayıcı formatlarını tek bir yerde toplar. Koleksiyon şunları içerir: rastgele kriptografik güçlü ID'ler için UUID v4 Üretici; zaman damgasına göre sıralanabilir birincil anahtarlar için UUID v7 Üretici; zamana ve MAC adresine dayalı tanımlayıcılar için UUID v1 Üretici; eski DCE sistemleri için UUID v2 Üretici; MD5 tabanlı deterministik ID'ler için UUID v3 Üretici; kompakt sıralanabilir dizeler için ULID Üretici; kısa URL güvenli tokenlar için NanoID Üretici; çakışmaya dayanıklı orijinal format için CUID Üretici; modern halefi için CUID2 Üretici; ve mevcut tanımlayıcıları incelemek için UUID Kod Çözücü. Tüm araçlar Web Crypto API kullanılarak tamamen tarayıcınızda çalışır — hiçbir sunucuya veri aktarılmaz, hesap gerekmez.

UUID ve Benzersiz ID Araçları Nedir?

UUID (Evrensel Benzersiz Tanımlayıcı), RFC 9562 (eski RFC 4122) standardında belirtilmiş 128 bitlik bir tanımlayıcıdır. 8-4-4-4-12 formatında 32 onaltılık karakter olarak yazılır ve şöyle görünür: 550e8400-e29b-41d4-a716-446655440000. Standart, benzersizliği garantilemek için farklı stratejiler kullanan birden fazla sürüm tanımlar: rastgele sayılar, zaman damgaları veya deterministik karma.

UUID'ler, dağıtık sistemlerin merkezi bir koordinatör olmadan tanımlayıcı oluşturabilmesi için tasarlanmıştır. PostgreSQL'de birincil anahtar atıyor, bir web uygulamasında oturum tokeni oluşturuyor veya nesne depolamada bir dosyayı adlandırıyor olun — UUID'ler sisteminizin her düğümünün bağımsız olarak küresel çapta benzersiz bir ID oluşturmasına olanak tanır; çakışma olasılığı pratikte ihmal edilebilecek kadar düşüktür.

UUID standardının ötesinde, belirli kısıtlamaları gidermek için çeşitli alternatif benzersiz ID formatları ortaya çıkmıştır: ULID ve UUID v7, veritabanı indeksleme verimliliği için sözlük sıralama özelliği ekler; NanoID, URL'ler ve çerezler için boyutu küçültür; CUID2, yüksek hacimli istemci tarafı üretim için parmak izi tabanlı çakışma direncine öncelik verir.

ToolDeck'teki UUID Araçlarını Neden Kullanmalısınız?

ToolDeck'in UUID araçları tamamen tarayıcınızda çalışır. API çağrısı yok, sunucu tarafı işleme yok, veri kaydı yok. Her üretici, kriptografik olarak güçlü entropi için Web Crypto API'yi (crypto.getRandomValues) kullanır — tarayıcıların TLS anahtar materyali için kullandığı kaynak.

🔐
Kriptografik Açıdan Güçlü Entropi
Tüm rastgele tabanlı üreticiler (UUID v4, NanoID, CUID2) Math.random yerine crypto.getRandomValues kullanır. Çıktı, oturum tokenları ve API anahtarları gibi güvenlik açısından hassas kullanım durumları için uygundur.
📦
Tüm Önemli ID Formatları Tek Yerde
UUID v1'den v7'ye, ULID, NanoID, CUID ve CUID2 — bir geliştiricinin ihtiyaç duyduğu tüm formatlar, toplu üretim ve tek tıkla kopyalama seçenekleriyle.
🔍
Mevcut ID'leri Çözme ve İnceleme
UUID Kod Çözücü, herhangi bir UUID'den sürüm, varyant, zaman damgası ve düğüm alanlarını çıkarır. Kod tabanındaki eski ID'lerin hata ayıklama, denetim ve anlaşılması için kullanışlıdır.
Kurulum Gerektirmez, Çevrimdışı Çalışır
Kurulum yok, kayıt yok, çalışma zamanı bağımlılığı yok. Sayfayı açın ve oluşturun. Tüm araçlar sayfa yüklendikten sonra çevrimdışı çalışır — hava boşluklu ortamlarda veya kısıtlı ağlarda kullanışlıdır.

UUID Araçlarının Kullanım Alanları

Benzersiz tanımlayıcılar yığının her katmanında karşımıza çıkar. Farklı rollerin UUID üretme araçlarını nasıl kullandığına bakalım:

Veritabanı Birincil Anahtarları
Arka uç mühendisleri, PostgreSQL, MySQL ve MongoDB'de birincil anahtar olarak UUID v4 veya UUID v7 atar. UUID v7'nin zaman damgası öneki, satırları diskte fiziksel olarak sıralı tutar ve ağır yazma iş yüklerinde sayfa bölünmelerini önler.
Ön Uç Durumu ve Bileşen ID'leri
Ön uç geliştiriciler, dinamik olarak oluşturulan liste öğeleri için kararlı React anahtarları, ARIA erişilebilirlik öznitelikleri için diyalog ID'leri ve form gönderimleri için idempotency tokenları oluşturmak amacıyla NanoID veya UUID v4 kullanır.
Dağıtık Olay Akışları
Olay odaklı sistemlerde her olayın küresel olarak benzersiz ve sıralanabilir bir ID'ye ihtiyacı vardır. DevOps ve platform mühendisleri, Kafka tüketicilerinin, günlük toplayıcıların ve denetim izlerinin ikincil bir zaman damgası alanı olmaksızın oluşturulma zamanına göre sıralanabilmesi için ULID veya UUID v7 kullanır.
Test Verisi Üretimi
QA mühendisleri, test veritabanlarını gerçekçi, sıralı olmayan ID'lerle doldurmak için toplu UUID üretir. Deterministik UUID v3 veya v5, bilinen bir girdiden aynı ID'yi yeniden üretmelerine olanak tanır — tekrarlanabilir test fikstürleri için kullanışlıdır.
Mikro Hizmet Korelasyon ID'leri
Her gelen HTTP isteğine bir UUID eklemek ve bunu hizmet çağrıları arasında yaymak (X-Request-ID başlığı), dağıtık izleme sistemlerinin hizmetler arasındaki günlükleri ilişkilendirmesini sağlar. UUID v4, istek korelasyonu için fiili standarttır.
Varlık ve Kaynak Adlandırma
Nesne depolama (S3, GCS, Cloudflare R2) anahtarları ve CDN varlık dosya adları, önbellek çakışmalarını ve URL tahminini önlemek için genellikle bir UUID içerir. NanoID'nin kompakt 21 karakterlik formatı, tam 36 karakterlik UUID'lere kıyasla URL uzunluğunu azaltır.

UUID Sürüm ve Format Referansı

Aşağıdaki tablo, tüm UUID sürümlerini en yaygın kullanılan UUID alternatifleriyle karşılaştırır. Gereksinimlerinize uygun formatı hızla belirlemek için kullanın.

TanımlayıcıAlgoritmaSıralanabilirDeterministikEn iyi kullanım
UUID v4Rastgele (CSPRNG)Genel amaçlı ID'ler, oturum tokenları, birincil anahtarlar
UUID v7Unix ms zaman damgası + rastgeleSıralanabilir birincil anahtarlar, dağıtık olay ID'leri (RFC 9562)
UUID v1Zaman damgası + MAC adresiZaman sıralı ID'ler, tek düğümlü sistemler, eski sistem uyumluluğu
UUID v3Ad alanı + ad + MD5Bilinen girdilerden (DNS, URL) tekrarlanabilir ID'ler
UUID v5Ad alanı + ad + SHA-1v3 ile aynı ama daha güçlü karma; v3 yerine v5 tercih edin
UUID v2Zaman damgası + DCE UID/GIDEski POSIX/DCE ortamları; yeni projeler için kullanmayın
ULIDZaman damgası öneki + rastgeleSıralanabilir ID'ler, URL güvenli, tire yok (26 karakter)
NanoIDRastgele (CSPRNG), URL güvenli alfabeURL'ler, çerezler, HTML öznitelikleri için kısa ID'ler (21 karakter)
CUID2Parmak izi + zaman damgası + rastgeleYüksek hacimli istemci tarafı üretim, çakışmaya dayanıklı

UUID v3 ve v5 deterministiktir: aynı ad alanı + ad her zaman aynı UUID'yi üretir. Diğer tüm formatlar her çağrıda yeni bir değer üretir.

Doğru UUID Aracını Nasıl Seçersiniz?

Doğru tanımlayıcı, sıralanabilirlik, boyut ve determinizm gereksinimlerinize bağlıdır. Bu karar kılavuzunu kullanın:

  1. 1
    Eğer özel gereksinimler olmaksızın genel amaçlı benzersiz bir ID'e ihtiyaç duyuyorsanızUUID v4 Üretici
  2. 2
    Eğer kronolojik olarak sıralanan ve UUID standardıyla uyumlu ID'lere ihtiyaç duyuyorsanızUUID v7 Üretici
  3. 3
    Eğer tek düğümlü veya düşük eşzamanlılıklı sistemler için gömülü zaman damgalı zaman sıralı ID'lere ihtiyaç duyuyorsanızUUID v1 Üretici
  4. 4
    Eğer URL güvenli ve tiresiz sıralanabilir ID'lere ihtiyaç duyuyorsanızULID Üretici
  5. 5
    Eğer tam bir UUID'den daha kısa kompakt URL güvenli ID'lere ihtiyaç duyuyorsanızNanoID Üretici
  6. 6
    Eğer istemci tarafında çok sayıda ID üretiyor ve güçlü çakışma direncine ihtiyaç duyuyorsanızCUID2 Üretici
  7. 7
    Eğer orijinal spesifikasyon üzerine kurulu mevcut sistemlerle uyumluluk için CUID v1 formatına ihtiyaç duyuyorsanızCUID Üretici
  8. 8
    Eğer bir ad alanı ve addan aynı ID'yi deterministik olarak yeniden oluşturmanız gerekiyorsaUUID v3 Üretici
  9. 9
    Eğer v2 tanımlayıcıları gerektiren eski DCE veya POSIX sistemleriyle çalışıyorsanızUUID v2 Üretici
  10. 10
    Eğer mevcut bir UUID'niz var ve sürümünü, varyantını veya zaman damgasını incelemek istiyorsanızUUID Çözücü

Hem UUID v7 hem de ULID, milisaniye hassasiyetinde zaman damgası önekleri ve sözlük sıralama özelliği sunar. Temel fark: UUID v7 maksimum ekosistem uyumluluğu için standart UUID formatını (8-4-4-4-12, 36 karakter) kullanırken, ULID özel Base32 kodlaması (26 karakter, URL güvenli, tire yok) kullanır. Veritabanınız, ORM'niz veya framework'ünüz UUID sütunlarını yerel olarak destekliyorsa UUID v7'yi tercih edin. Framework kısıtlamaları olmaksızın daha kısa ID'lere ihtiyacınız varsa ULID daha kompakttır.

Sıkça Sorulan Sorular

UUID nedir?
UUID (Evrensel Benzersiz Tanımlayıcı), RFC 9562'de standartlaştırılmış 128 bitlik bir değerdir. Tire ile ayrılmış beş grupta 32 onaltılık basamak olarak yazılır: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Standart, farklı benzersizlik stratejilerine sahip birden fazla sürüm tanımlar — rastgele (v4), zaman damgası tabanlı (v1, v7) veya ada dayalı deterministik (v3, v5).
UUID v4 ve UUID v7 arasındaki fark nedir?
UUID v4, sabit olmayan 122 bitin tamamını kriptografik olarak güvenli bir kaynaktan rastgele verilerle doldurur. UUID v7, ilk 48 bite 48 bitlik Unix milisaniye zaman damgasını kodlar ve ardından rastgele bitler gelir. Sonuç: UUID v7, düz dizeler olarak kronolojik sırada sıralanır ve bu sayede veritabanı B-tree indeksleri ekleme sırasında sıralı kalır. UUID v7, RFC 9562'ye (Nisan 2024) eklendi ve yeni veritabanı birincil anahtarları için tercih edilen seçimdir.
UUID v4 değerleri kriptografik açıdan güvenli midir?
UUID v4 değerleri, kriptografik olarak güvenli bir sözde rastgele sayı üreteci (CSPRNG) kullanılarak oluşturulur. Oturum ID'leri, parola sıfırlama bağlantıları gibi tahmin edilemez tokenlar olarak uygundur. Ancak UUID kendi başına bir sır değildir: HMAC'i, son kullanma tarihi ve belirli bir kullanıcıya bağlantısı yoktur. UUID'leri kimlik doğrulama kimlik bilgileri olarak değil, opak tanımlayıcılar olarak değerlendirin.
İki farklı sistem aynı UUID'yi üretebilir mi?
UUID v4 için çakışma olasılığı, çift başına yaklaşık 1/2^122'dir. Herhangi bir çakışma için %50 olasılığa sahip olmak için yaklaşık 2,7 × 10^18 UUID üretmeniz gerekir — herhangi bir gerçek sistemin ürettiğinin çok ötesinde. UUID v1 ve v7 ayrıca bir zaman damgası ve/veya rastgele bitler içerir, bu da yanlışlıkla çakışmayı daha da olası kılmaz. Tüm pratik amaçlar için, ayrı sistemlerdeki UUID'ler çakışmaz.
UUID'ler neden 36 karakter uzunluğundadır?
Bir UUID 128 bit = 16 bayttır. Onaltılı olarak kodlandığında bu 32 karakterdir. UUID formatı, okunabilirliği artırmak ve sürüm ile varyant bitlerini görsel olarak kolayca tanımlamak için sabit konumlara (8, 4, 4 ve 4 onaltılık basamak gruplarından sonra) 4 tire ekler ve toplam 36 karakter elde edilir. Tireler hiçbir veri taşımaz.
ULID nedir ve UUID'den nasıl farklıdır?
ULID (Evrensel Benzersiz Sözlük Sıralı Tanımlayıcı), Crockford Base32 ile kodlanmış 128 bitlik bir tanımlayıcıdır (26 karakter, büyük/küçük harf duyarsız, tire yok). İlk 48 bit Unix zamanını milisaniye cinsinden kodlar; kalan 80 bit rastgeledir. ULID'ler düz dizeler olarak doğru sıralanır ve UUID'lerden daha kompakttır. UUID RFC'nin bir parçası değildir — farklı bir kodlama kullanır ve UUID'lerin sürüm/varyant alanlarından yoksundur.
Birincil anahtar olarak UUID mi yoksa otomatik artan tam sayılar mı kullanmalıyım?
Otomatik artan tam sayılar sıralı, kompakt ve indeks dostu olmakla birlikte atama için merkezi bir koordinatöre (veritabanı) ihtiyaç duyar — bu da dağıtık sistemlerde başarısız olur ve satır sayılarını açığa çıkarır. UUID'ler (özellikle v7 veya ULID) veritabanı gidiş-dönüşü olmadan istemci tarafında oluşturulabilir ve iyimser eklemelere ve dağıtık yazmalara olanak tanır. Takas şudur: depolama (16 bayt ile 4–8 bayt) ve rastgele UUID'ler (v4) için biraz daha düşük indeks yerelliği. UUID v7 ve ULID, zaman damgası önekleri kullanarak indeks yerelliği sorununu ortadan kaldırır.
UUID v3 ve UUID v5 arasındaki fark nedir?
Hem UUID v3 hem de v5 deterministiktir: aynı ad alanı + ad çifti için her zaman aynı UUID'yi üretirler ve DNS girişleri, URL'ler veya nesne tanımlayıcıları gibi şeyler için tekrarlanabilir ID'ler oluşturmak için kullanışlıdır. Tek fark karma algoritmasıdır: v3 MD5 (128 bit, eski) kullanırken v5 SHA-1 (160 bit, 128 bite kısaltılmış) kullanır. Yeni projeler için UUID v5'i tercih edin — hiçbir sürüm kriptografik karma olarak kullanılmasa da SHA-1, MD5'ten daha güçlüdür.