UUID Kod Çözücü ve Doğrulayıcı | Sürüm ve Zaman Analizi (v1, v4, v7)

UUID’nizi yukarıdaki alana yapıştırın; bu araç (UUID Ayrıştırıcı) anında çevrimiçi kontrol yapar, sürümü, geçerliliği belirler ve gizli bilgileri çıkarır.

UUID Kod Çözücü Nedir?

UUID Kod Çözücü, UUID’leri (Evrensel Benzersiz Tanımlayıcı) analiz eden ve onlardan mevcut tüm bilgileri çıkaran bir araçtır. UUID sadece rastgele bir karakter dizisi değildir; sürümüne bağlı olarak zaman damgası, sistem bilgisi veya deterministik verilerin hash’ini içerebilir.

Bir UUID’den Hangi Bilgileri Alabilirsiniz?

Temel UUID Bilgileri

UUID Sürümü:

  • UUID’nin tipini ve yapısını belirler (v1, v3, v4, v5, v6, v7)
    1. onaltılık karakterden çıkarılır

Varyant:

  • RFC 4122 - Standart UUID varyantı
  • NCS - Network Computing System (eski)
  • Microsoft - Microsoft GUID varyantı
  • Reserved - Gelecekteki kullanım için ayrılmıştır

UUID v1 - Zaman Damgası + MAC Adresi

Neler Alabilirsiniz:

  • Doğru Oluşturma Zamanı - 100 nanosaniye hassasiyetle tarih ve saat
  • Saat Sırası - çakışmaları önlemek için ardışık numara
  • Düğüm Kimliği - orijinal olarak MAC adresi, genellikle rastgele değerler

Örnek:

UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Sürüm: v1 (Zaman Damgası + MAC)
Varyant: RFC 4122
Tarih ve Saat: 15.10.1997 04:25:33.000
Saat Sırası: 724
Düğüm Kimliği: 00:C0:4F:D4:30:C8

Kullanım Alanları:

  • Bir kaydın ne zaman oluşturulduğunu belirleme
  • Denetim ve adli analiz
  • Zamana bağlı sorunlarda hata ayıklama

UUID v3/v5 - Hash Tabanlı

Neler Alabilirsiniz:

  • Hash Tipi - MD5 (v3) veya SHA-1 (v5)
  • Alınamaz - orijinal ad alanı ve adı (tek yönlü hash)

Örnek:

UUID: 886313e1-3b8a-5372-9b90-0c9aee199e5d

Sürüm: v5 (SHA-1 hash)
Varyant: RFC 4122
Tip: Hash Tabanlı UUID (deterministik)
Not: Orijinal ad alanı ve adı UUID'den geri alınamaz

Kullanım Alanları:

  • UUID’nin deterministik olduğunu doğrulama
  • Veritabanında UUID tipini belirleme
  • Hash tabanlı tanımlayıcıların tutarlılığını kontrol etme

UUID v4 - Rastgele

Neler Alabilirsiniz:

  • Sürüm - rastgele olduğunu doğrulama
  • Varyant - RFC 4122 standardı
  • Başka veri yok - tamamen rastgele bitler

Örnek:

UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479

Sürüm: v4 (Rastgele)
Varyant: RFC 4122
Tip: Rastgele Oluşturulmuş UUID

Kullanım Alanları:

  • UUID’nin rastgele olduğunu (deterministik olmadığını) doğrulama
  • UUID’nin doğru formatını kontrol etme
  • Veritabanına kaydetmeden önce UUID’yi doğrulama

UUID v6 - Sıralı Zaman Damgası

Neler Alabilirsiniz:

  • Doğru Oluşturma Zamanı - daha iyi DB performansı için yeniden düzenlenmiş
  • Saat Sırası - ardışık numara
  • Düğüm Kimliği - düğüm tanımlayıcısı

Örnek:

UUID: 1ec9414c-232a-6b00-b3c8-9e6bdeced846

Sürüm: v6 (Sıralı Zaman Damgası)
Varyant: RFC 4122
Tarih ve Saat: 30.01.2026 14:23:45.123
Saat Sırası: 3272
Düğüm Kimliği: 9E:6B:DE:CE:D8:46

Kullanım Alanları:

  • Kayıt oluşturma zamanını belirleme
  • DB’deki kronolojik sıralamanın analizi
  • Dağıtılmış sistemlerde hata ayıklama

UUID v7 - Unix Zaman Damgası

Neler Alabilirsiniz:

  • Unix zaman damgası - 1.1.1970’ten itibaren milisaniyeler
  • Tarih ve Saat - standart Unix zaman damgası formatı
  • Rastgele kısım - çözülemez

Örnek:

UUID: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Sürüm: v7 (Unix zaman damgası)
Varyant: RFC 4122
Tarih ve Saat: 30.01.2026 14:23:45.123

Kullanım Alanları:

  • Modern UUID’lerin oluşturulma zamanını alma
  • Zaman sıralamasının analizi
  • Zaman damgalı verilerin taşınması

UUID Yapısı

UUID’nin formatı: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

6ba7b810-9dad-11d1-80b4-00c04fd430c8
│      │ │  │ │  │ │  │ └───────────┴─ Düğüm (48 bit)
│      │ │  │ │  │ └──┴─────────────── Saat Sırası (14 bit)
│      │ │  │ └──┴────────────────────── Varyant (2-3 bit)
│      │ └──┴───────────────────────────── Sürüm (4 bit) + Yüksek Zaman
│      └──────────────────────────────────── Orta Zaman (16 bit)
└─────────────────────────────────────────── Düşük Zaman (32 bit)

Sürüm ve Varyant Çıkarma

Sürüm (M):

  • Konum: 13. onaltılık karakter
  • Değerler: 1-7 (farklı UUID sürümleri)

Varyant (N):

  • 0-7: NCS (Ayrılmış)
  • 8-B: RFC 4122 (standart)
  • C-D: Microsoft
  • E-F: Gelecek (Ayrılmış)

Pratik Örnekler

Hata Ayıklama - Kayıt Oluşturma Zamanını Belirleme

Senaryo: Kullanıcı verilerinin kaybolduğunu bildiriyor. Kaydın ne zaman oluşturulduğunu bulmanız gerekiyor.

UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
Çözüldü: 15.10.1997 04:25:33.000

→ Kayıt 1997 yılında oluşturuldu

Adli Analiz - Zaman Sırasını Doğrulama

Senaryo: Olayların doğru sırada gerçekleşip gerçekleşmediğini kontrol etme.

UUID 1: 1ec9414c-232a-6b00-b3c8-9e6bdeced846 → 30.01.2026 14:23:45
UUID 2: 1ec9414d-557b-6a00-8f32-1234567890ab → 30.01.2026 14:25:12

→ UUID 2 daha sonra oluşturuldu (doğru sıra)

Veritabanında UUID Tipini Belirleme

Senaryo: DB’de karışık UUID’leriniz var ve hangilerinin rastgele, hangilerinin zaman damgasına sahip olduğunu bilmeniz gerekiyor.

f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (rastgele, zaman damgası yok)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (zaman damgası var)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (zaman damgası var)

→ Yalnızca v1 ve v7 UUID'leri zaman bilgisi içerir

Sınırlamalar ve Neler Alınamaz

❌ UUID v3/v5 - Hash Çözülemez

Mümkün Değil:

  • Orijinal ad alanını geri almak
  • Orijinal adı/değeri geri almak
  • Hangi verilerin hash’lendiğini öğrenmek

Neden: MD5 ve SHA-1 tek yönlü hash fonksiyonlarıdır.

❌ UUID v4 - Gizli Veri Yok

Mümkün Değil:

  • Herhangi bir meta veri almak
  • Oluşturulma zamanını öğrenmek
  • Kaynağı belirlemek

Neden: UUID v4 tamamen rastgeledir, herhangi bir yapılandırılmış bilgi içermez.

⚠️ UUID v1/v6 - Düğüm Kimliği Rastgele Olabilir

Sınırlama:

  • Modern uygulamalarda Düğüm Kimliği genellikle rastgeledir (gerçek MAC adresi değil)
  • Gizliliğin korunması nedeniyle, MAC adresleri genellikle rastgele değerlerle değiştirilir
  • Belirli bir makine güvenilir bir şekilde tanımlanamaz

UUID Doğrulama

Kod çözücü aynı zamanda bir UUID doğrulayıcı olarak da işlev görür.

UUID Geçerliliğini Kontrol Etme

Kod çözücü otomatik olarak doğrular:

  • ✅ Doğru format (8-4-4-4-12 onaltılık karakter)
  • ✅ Geçerli onaltılık karakterler (0-9, a-f)
  • ✅ Doğru uzunluk (tireler dahil 36, tiresiz 32 karakter)

Geçersiz UUID’leri Tanıma

Geçersiz örnekler:

❌ 6ba7b810-9dad-11d1-80b4          (çok kısa)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (geçersiz karakterler)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (yanlış format)

Geliştiriciler İçin

JavaScript Uygulaması

// UUID'den sürüm çıkarma
function getUUIDVersion(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    return parseInt(cleaned[12], 16);
}

// v7 UUID'sinden zaman damgası çıkarma
function extractV7Timestamp(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    const timeHi = parseInt(cleaned.substring(0, 8), 16);
    const timeLow = parseInt(cleaned.substring(8, 12), 16);
    const unixMs = Number(BigInt("0x" + cleaned.substring(0, 12)) >> 16n);
    return new Date(unixMs);
}

// Örnek
const uuid = '017f22e2-79b0-7cc3-98c4-dc0c0c07398f';
console.log(getUUIDVersion(uuid)); // 7
console.log(extractV7Timestamp(uuid)); // Date object

Regex Kullanarak UUID Doğrulama

const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;

function isValidUUID(uuid) {
    return uuidRegex.test(uuid);
}

Sıkça Sorulan Sorular (SSS)

UUID v4'ten oluşturulma zamanını alabilir miyim? Hayır, UUID v4 tamamen rastgeledir ve herhangi bir zaman bilgisi içermez. Zaman bilgisi içeren UUID'ler için v1, v6 veya v7 kullanın.
UUID v1'deki Düğüm Kimliği neden MAC adresi yerine rastgele? Modern uygulamalar, gizliliğin korunması nedeniyle rastgele Düğüm Kimliği kullanır. Gerçek MAC adresinin ifşa edilmesi bir güvenlik riski olabilir.
UUID v5'ten orijinal URL'yi veya adı geri alabilir miyim? Hayır, UUID v5, tek yönlü bir SHA-1 hash kullanır. Hash'ten orijinal verileri geri almak mümkün değildir.
Bir UUID'nin rastgele (v4) olduğunu nasıl anlarım? Kod çözücü UUID'nin sürümünü gösterir. Sürüm 4 ise, bu ek meta veri içermeyen rastgele oluşturulmuş bir UUID'dir.
UUID v1'deki zaman damgası doğru mu? Evet, UUID v1 teorik olarak 100 nanosaniye hassasiyete sahiptir (15 Ekim 1582'den itibaren). Pratikte, sistem saatinin doğruluğuna bağlıdır.
Kod çözücüyü UUID doğrulamak için kullanabilir miyim? Evet, kod çözücü UUID formatını otomatik olarak doğrular ve UUID geçersizse bir hata gösterir.

Güvenlik ve Gizlilik

UUID Neleri Ortaya Çıkarır?

UUID v1/v6:

  • ⚠️ Oluşturulma zamanı - işlemlerin zamanlamasını ortaya çıkarabilir
  • ⚠️ Potansiyel olarak MAC adresi - cihaz tanımlama riski (modern uygulamalarda rastgele)

UUID v4:

  • Güvenli - meta veri içermez

UUID v7:

  • ⚠️ Unix zaman damgası - oluşturulma zamanını ortaya çıkarır

Tavsiyeler

  • ✅ Maksimum gizlilik için UUID v4 kullanın
  • ⚠️ Genel API’lerde UUID v1/v6/v7 kullanırken dikkatli olun (zaman bilgilerini ortaya çıkarırlar)
  • ✅ UUID v5 deterministiktir, ancak orijinal verileri ifşa etmez
  • ⚠️ MD5 Hash tamamen güvenli değildir

İlginç Bilgiler

  • Mümkün olan en eski UUID v1: 15 Ekim 1582 00:00:00 (Gregoryen takviminin başlangıcı)
  • En yeni UUID v7: 10889-08-02 05:31:50.655 (ms cinsinden Unix zaman damgası limiti)
  • UUID v1 doğruluğu: 100 nanosaniye (teorik olarak saniyede 10 milyon UUID)
  • Nil UUID: 00000000-0000-0000-0000-000000000000 (özel “boş” UUID)
  • UUID Maks: ffffffff-ffff-ffff-ffff-ffffffffffff (maksimum değer)

Farklı Sistemlerde Kullanım

PostgreSQL

-- UUID sürümünü çıkarma
SELECT substring(id::text, 15, 1) as version
FROM users;

-- Sürüme göre filtreleme
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';

MySQL

-- UUID formatını kontrol etme
SELECT id
FROM users
WHERE id REGEXP '^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$';