UUID Çözümleme Nedir?
UUID çözümleme bir UUID'den bilgiyi çıkarmak şu işlemdir:
- Version: 48-51 konumundaki 4 bitten hangisinin UUID sürümü (1-8) olduğu
- Variant: 64-65 bitlere (genellikle RFC 4122) göre hangi UUID varyantı olduğu
- Components: Sürüme göre zaman damgası, düğüm ID'si veya diğer verilerin çıkarılması
- Oluşturulma zamanı: Zaman tabanlı UUID'ler için (v1, v6, v7)
Example: 123e4567-e89b-12d3-a456-426614174000 zaman damgasına sahip bir Sürüm 1 UUID'sidir 2228-06-25T20:01:28.545Z JavaScript milisaniye duyarlılığında gösterildiğinde.
UUID Yapısına Genel Bakış
| Format | Description |
|---|---|
| 8-4-4-4-12 | Kısa çizgilerle gruplanmış 32 onaltılık hane |
| Sürüm bitleri | 48-51 bitler (13. basamak) |
| Varyant bitleri | 64-65 bitler (17. basamak) |
Sürüm numarası üçüncü gruptaki ilk onaltılık basamak olarak görünür (ör., 123e4567-e89b-12d3-a456-426614174000 sürüm 1 için).
Sürüme Göre Çözümleme
| Version | Neler çözümlenebilir |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
UUID'lerden Zaman Damgası Çıkarma
| UUID Türü | Zaman Çıkarma Yöntemi | Epoch |
|---|---|---|
| UUID v1 | Zaman damgası bileşenlerini yeniden sıralayarak 0-31, 32-47 ve 48-59 bitlerini birleştirin | 15 Ekim 1582 |
| UUID v6 | 0-47 bitleri ile 52-63 bitlerini birleştir; 48-51 bitleri sürüm olduğu için hariç tutulur | 15 Ekim 1582 |
| UUID v7 | 0-47 bitlerini çıkarın (Unix milisaniyeleri) | 1 Ocak 1970 |
UUID Doğrulama Kuralları
- Biçim kontrolü: Tirelerle 8-4-4-4-12 onaltılık hane
- Sürüm kontrolü: 13. karakter 1-8 olmalıdır
- Varyant kontrolü: 17. karakter RFC 4122 için 8, 9, A veya B olmalıdır
Temel UUID doğrulaması için düzenli ifade:
^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$UUID v7 zaman damgası örneği
017f22e2-79b0-7cc3-98c4-dc0c0c07398f RFC 9562 UUIDv7 test vektörüdür. İlk 48 biti Unix milisaniyeleridir ve çözümlendiğinde 2022-02-22T19:22:22.000Z, 1645557742000 milisaniye veya 1645557742 seconds.
Yeni bir tane oluşturun UUID v7, veya devam edin Unix Zaman Damgası Dönüştürücü. Bu bağlantılar girdiğiniz UUID'yi içermez.
Pratik Uygulamalar
- Adli analiz: ID'lerin ne zaman oluşturulduğunu belirleme
- Debugging: ID zaman damgalarıyla sistem davranışını izleme
- Auditing: Kronolojik bütünlüğü doğrulama
- Biçim kontrolleri: Bozuk ID'leri tespit etme; geçerli bir UUID kimliğin doğruluğunu kanıtlamaz
- Veri kurtarma: Zaman ilişkilerini yeniden oluşturma
- Sistem geçişleri: Eski UUID uygulama detaylarını anlama
MAC Adresi Çıkarma (v1/v6)
UUID v1 ve v6 için, oluşturma sırasında düğüm tanımlayıcısı (MAC adresi) rastgeleleştirilmemişse genellikle çıkarabilirsiniz:
- UUID'den son 12 onaltılık haneyi (48 bit) çıkarın
- XX:XX:XX:XX:XX:XX biçiminde iki nokta ile formatlayın
- Multicast bitini inceleyerek MAC adresinin gerçek mi yoksa rastgele mi olduğunu kontrol edin
Eğer ilk baytın 0x01 biti set edilmişse, bu muhtemelen gerçek bir MAC adresi yerine rastgeleleştirilmiş bir düğüm ID'sidir.
Sıkça Sorulan Sorular
Bir UUID v4'ün tam olarak ne zaman oluşturulduğunu belirleyebilir miyim?
Hayır. UUID v4 tamamen rastgeledir ve zaman damgası bilgisi içermez. Oluşturulma zamanı UUID v4 değerinden belirlenemez.
Zaman tabanlı UUID'lerde zaman damgalarının doğruluğu ne kadar?
UUID v1/v6 zaman damgaları 100 nanosaniye duyarlılığına sahiptir. UUID v7 milisaniye duyarlılığındadır. Ancak gerçek sistem saati doğruluğu değişkenlik gösterebilir.
UUID sürümleri arasında dönüştürebilir miyim?
Hayır, farklı sürümler temel yapıları farklı olduğu için aynı kimlik değerini koruyarak doğrudan dönüştürme yapılamaz.
Bir UUID v1'i hangi bilgisayarın oluşturduğunu tespit edebilir miyim?
Düğüm ID'si rastgeleleştirilmemişse, bir UUID v1 oluşturulan sistemin MAC adresini içerebilir. Ancak gizlilik için birçok modern uygulama bunu rastgeleleştirir.
Bir UUID'nin geçerli olup olmadığını nasıl anlarım?
Biçimi kontrol edin (8-4-4-4-12 onaltılık hane), sürüm basamağının (13. karakter) 1-8 olduğunu doğrulayın ve varyant bitlerini kontrol edin (RFC 4122 UUID'ler için 17. karakter 8, 9, A veya B olmalıdır).