UUID oluşturucu: UUID v4 ve v7 oluşturun ve doğrulayın
UUID (GUID) değerlerini doğrudan tarayıcınızda oluşturur – rastgele sürüm 4 veya zamana göre sıralanabilen sürüm 7 (RFC 9562). “Doğrula” modunda araç, bir UUID’nin geçerli olup olmadığını, hangi sürüm olduğunu ve ne zaman oluşturulduğunu gösterir.
Nasıl hesaplanır?
UUID (Universally Unique Identifier, Microsoft dünyasında GUID), merkezi bir kayıt olmadan dünya genelinde benzersiz olan 128 bitlik bir kimliktir. Beş gruba ayrılmış 32 onaltılık basamakla yazılır: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx. M basamağı sürümü, N’nin üst bitleri ise varyantı gösterir (günümüz UUID’lerinde 8, 9, a veya b). Güncel standart, RFC 4122’nin yerini alan RFC 9562’dir (2024).
Sürüm 4 mü, sürüm 7 mi?
- Sürüm 4 122 rastgele bitten oluşur. Zaman veya cihaz hakkında hiçbir şey açığa vurmaz – token, dosya adı ve sıralama gerektirmeyen her şey için doğru seçimdir.
- Sürüm 7 milisaniye cinsinden Unix zamanıyla (48 bit) başlar, ardından 74 rastgele bit gelir. Böylece yeni UUID’ler oluşturulma sırasına göre sıralanır – yeni satırlar dizinin rastgele yerlerine değil sonuna eklendiği için veritabanı birincil anahtarı olarak idealdir. Dezavantajı: oluşturulma zamanını herkes okuyabilir.
Aynı anda çok sayıda v7 UUID oluşturduğunuzda çoğu aynı milisaniyeye düşer. Araç bu durumda rastgele kısmı bir artırır (RFC 9562 § 6.2, yöntem 2); böylece liste kesin olarak artan sırada kalır.
Rastgelelik ne kadar iyi?
Rastgele bitler, tarayıcınızın kriptografik olarak güvenli üreteci crypto.getRandomValues()’tan gelir – crypto.randomUUID()’nin de kullandığı üreteç. Hiçbir şey sunucuya gönderilmez veya kaydedilmez. 122 rastgele bitle, tek bir tekrarın olasılığının %50’ye ulaşması için yaklaşık 2,7 kentilyon (2,7 × 1018) UUID gerekir.
UUID doğrulama ve çözümleme
“Doğrula” modunda araç mevcut bir UUID’yi parçalarına ayırır: uzunluğu ve karakterleri kontrol eder, sürümü ve varyantı okur, sürüm 1, 6 ve 7 için içindeki zaman damgasını UTC’ye ve yerel saatinize çevirir. Sürüm 1 ve 6, 15 Ekim 1582’den (Gregoryen takvimin başlangıcı) bu yana geçen 100 nanosaniyelik aralıkları; sürüm 7 ise 1 Ocak 1970’ten bu yana geçen milisaniyeleri sayar. Özel değerler Nil UUID (tamamı sıfır) ve Max UUID’dir (tamamı f).
Sıkça sorulan sorular
UUID nedir?
UUID, 8-4-4-4-12 düzeninde beş gruba ayrılmış 32 onaltılık karakterle yazılan 128 bitlik bir kimliktir. Kayıtlara, dosyalara veya cihazlara merkezi bir kayıt olmadan benzersiz numara vermek için kullanılır.
UUID ile GUID arasındaki fark nedir?
Özünde fark yoktur: GUID (Globally Unique Identifier), Microsoft’un aynı 128 bitlik biçim için kullandığı addır. Windows veya .NET’ten gelen bir GUID genellikle sürüm 4 UUID’dir.
e-Faturadaki UUID (ETTN) nedir?
e-Fatura ve e-Arşiv faturada her belgeye ETTN (Evrensel Tekil Tanımlama Numarası) verilir; bu numara UUID biçimindedir. Bu araçla bir ETTN’nin biçimini kontrol edebilirsiniz; faturanın kendisinin geçerliliğini ise yalnızca GİB sistemleri doğrular.
Bir UUID iki kez oluşabilir mi?
Teoride evet, pratikte hayır: sürüm 4’ün 2122 olası değeri vardır. Saniyede bir milyar UUID üretilse bile tekrar olasılığının %50’ye ulaşması yaklaşık 86 yıl sürer – burada kullanılan crypto.getRandomValues() gibi iyi bir rastgele üreteç şartıyla.
Veritabanı için hangi UUID sürümünü kullanmalıyım?
Sürüm 7. Zaman damgasıyla başladığı için yeni kayıtlar sırayla eklenir; bu da B-ağacı dizinlerini sıkı ve hızlı tutar. PostgreSQL 18 bunun için yerleşik uuidv7() fonksiyonu sunar.
Bir UUID’nin ne zaman oluşturulduğu anlaşılabilir mi?
Sürüm 1, 6 ve 7 için evet – “UUID doğrula / çözümle” seçeneğini seçin. Sürüm 4 yalnızca rastgelelik içerir; ne zamanı ne de cihazı gösterir.
Büyük harf mi küçük harf mi?
İkisi de geçerlidir. RFC 9562 çıktıda küçük harf önerir ve girişte büyük/küçük harf ayrımı yapılmamasını şart koşar. Bazı Microsoft araçları GUID’leri süslü parantez içinde büyük harfle gösterir.
Kaynaklar ve yasal dayanak
- § 4 (Format, Variante, Version), § 5.4 (v4), § 5.7 (v7), § 6.2 (Monotonie), Anhang A (Testvektoren): RFC 9562 – Universally Unique IDentifiers (UUIDs), IETF 2024
- W3C Web Cryptography API – Crypto.getRandomValues()
- MDN Web Docs – Crypto.randomUUID()
Güncelleme:
Benzer araçlar
- Unix zaman damgası dönüştürücüUnix zaman damgasını tarihe, tarihi zaman damgasına çevirin. Saniye, milisaniye, mikro- ve nanosaniye otomatik algılanır; UTC, yerel saat ve ISO 8601.
- DNS sorgulamaOnline DNS sorgulama: her alan adının A, AAAA, MX, TXT, CNAME, NS, SOA, CAA, SRV ve PTR kayıtları – TTL, DNSSEC durumu ve açıklamalı hata kodlarıyla.
- Hash Hesaplama: SHA-256, SHA-512, SHA-1, MD5Metin veya dosya için SHA-256, SHA-384, SHA-512, SHA-1 ve MD5 hash hesaplama, checksum karşılaştırma – tarayıcınızda, yükleme yok, ücretsiz.
- Base64 encode ve decodeBase64 ve Base64url’i doğru UTF-8 ile kodlayın ve çözün; URL encode/decode (yüzde kodlama) dahil. Anlaşılır hata mesajları, tamamen tarayıcınızda çalışır.
- JSON formatter, doğrulayıcı ve küçültücüJSON formatter: JSON’u RFC 8259’a göre doğrulayın, hatayı satır, sütun ve açıklamasıyla görün. Biçimlendirin, küçültün, anahtarları sıralayın – tarayıcıda.
- Regex testerRegex tester: JavaScript düzenli ifadelerini canlı test edin – eşleşmeler vurgulanır, gruplar tabloda, desenin her parçası açıklanır. Ücretsiz, veri yüklenmez.