Dekoder i Walidator UUID | Analiza wersji (v1, v4, v7) i czasu
Wprowadź swoje UUID w polu powyżej, a to narzędzie (parser UUID) natychmiast przeprowadzi kontrolę online, określi wersję, ważność i wyodrębni ukryte informacje.
Co to jest Dekoder UUID?
Dekoder UUID to narzędzie, które analizuje UUID (Universally Unique Identifier) i wyodrębnia z niego wszelkie dostępne informacje. UUID to nie tylko losowy ciąg znaków – w zależności od wersji może zawierać sygnaturę czasową, informacje o systemie lub skrót danych deterministycznych.
Jakie informacje można uzyskać z UUID?
Podstawowe informacje o UUID
Wersja UUID:
- Określa typ i strukturę UUID (v1, v3, v4, v5, v6, v7)
- Wyodrębniona z 13. znaku szesnastkowego
Wariant:
RFC 4122- Standardowy wariant UUIDNCS- Network Computing System (przestarzałe)Microsoft- Wariant GUID MicrosoftuReserved- Zarezerwowany do przyszłego użytku
UUID v1 - Sygnatura czasowa + adres MAC
Co możesz uzyskać:
- ✅ Dokładny czas utworzenia - data i czas z dokładnością do 100 nanosekund
- ✅ Sekwencja zegarowa - numer sekwencyjny zapobiegający kolizjom
- ✅ ID węzła - pierwotnie adres MAC, często wartości losowe
Przykład:
UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
Wersja: v1 (Sygnatura czasowa + MAC)
Wariant: RFC 4122
Data i czas: 15.10.1997 04:25:33.000
Sekwencja zegarowa: 724
ID węzła: 00:C0:4F:D4:30:C8
Użycie:
- Określenie, kiedy rekord został utworzony
- Audyt i analiza kryminalistyczna
- Debugowanie problemów zależnych od czasu
UUID v3/v5 - Oparty na skrócie (hash-based)
Co możesz uzyskać:
- ✅ Typ skrótu - MD5 (v3) lub SHA-1 (v5)
- ❌ Nie można uzyskać - oryginalnej przestrzeni nazw i nazwy (jednokierunkowy skrót)
Przykład:
UUID: 886313e1-3b8a-5372-9b90-0c9aee199e5d
Wersja: v5 (skrót SHA-1)
Wariant: RFC 4122
Typ: UUID oparty na skrócie (deterministyczny)
Uwaga: Oryginalna przestrzeń nazw i nazwa nie mogą zostać odzyskane z UUID
Użycie:
- Weryfikacja, czy UUID jest deterministyczne
- Identyfikacja typu UUID w bazie danych
- Kontrola spójności identyfikatorów opartych na skrócie
UUID v4 - Losowe
Co możesz uzyskać:
- ✅ Wersja - potwierdzenie, że jest losowe
- ✅ Wariant - standard RFC 4122
- ❌ Brak dodatkowych danych - czysto losowe bity
Przykład:
UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479
Wersja: v4 (Losowe)
Wariant: RFC 4122
Typ: Losowo generowane UUID
Użycie:
- Weryfikacja, czy UUID jest losowe (nie deterministyczne)
- Sprawdzenie prawidłowego formatu UUID
- Walidacja UUID przed zapisaniem do bazy danych
UUID v6 - Uporządkowana sygnatura czasowa
Co możesz uzyskać:
- ✅ Dokładny czas utworzenia - przestawiony dla lepszej wydajności bazy danych
- ✅ Sekwencja zegarowa - numer sekwencyjny
- ✅ ID węzła - identyfikator węzła
Przykład:
UUID: 1ec9414c-232a-6b00-b3c8-9e6bdeced846
Wersja: v6 (Uporządkowana sygnatura czasowa)
Wariant: RFC 4122
Data i czas: 30.01.2026 14:23:45.123
Sekwencja zegarowa: 3272
ID węzła: 9E:6B:DE:CE:D8:46
Użycie:
- Określenie czasu utworzenia rekordu
- Analiza chronologicznego sortowania w BD
- Debugowanie systemów rozproszonych
UUID v7 - Sygnatura czasowa Unix
Co możesz uzyskać:
- ✅ Sygnatura czasowa Unix - milisekundy od 1.1.1970
- ✅ Data i czas - standardowy format sygnatury czasowej Unix
- ❌ Losowa część - nie można zdekodować
Przykład:
UUID: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Wersja: v7 (Sygnatura czasowa Unix)
Wariant: RFC 4122
Data i czas: 30.01.2026 14:23:45.123
Użycie:
- Uzyskanie czasu utworzenia nowoczesnych UUID
- Analiza porządku czasowego
- Migracja danych z sygnaturami czasowymi
Struktura UUID
UUID ma format: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
6ba7b810-9dad-11d1-80b4-00c04fd430c8
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ └───────────┴─ Node (48 bitów)
│ │ │ │ │ │ └──┴─────────────── Clock Sequence (14 bitów)
│ │ │ │ └──┴────────────────────── Varianta (2-3 bity)
│ │ └──┴───────────────────────────── Verze (4 bity) + Time High
│ └──────────────────────────────────── Time Mid (16 bitów)
└─────────────────────────────────────────── Time Low (32 bitów)
Ekstrakcja wersji i wariantów
Wersja (M):
- Pozycja: 13. znak szesnastkowy
- Wartości: 1-7 (różne wersje UUID)
Wariant (N):
- Pozycja: 17. znak szesnastkowy
0-7: NCS (Zarezerwowany)8-B: RFC 4122 (standard)C-D: MicrosoftE-F: Przyszłość (Zarezerwowany)
Praktyczne przykłady
Debugowanie - Określenie czasu utworzenia rekordu
Scenariusz: Użytkownik zgłasza, że jego dane zniknęły. Musisz ustalić, kiedy rekord został utworzony.
UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
Zdekodowano: 15.10.1997 04:25:33.000
→ Rekord został utworzony w roku 1997
Analiza kryminalistyczna - Weryfikacja sekwencji czasowej
Scenariusz: Sprawdzenie, czy zdarzenia miały miejsce w prawidłowej kolejności.
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 zostało utworzone później (prawidłowa kolejność)
Identyfikacja typu UUID w bazie danych
Scenariusz: Masz mieszane UUID w bazie danych i musisz wiedzieć, które są losowe, a które mają sygnaturę czasową.
f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (losowe, bez sygnatury czasowej)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (ma sygnaturę czasową)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (ma sygnaturę czasową)
→ Tylko UUID v1 i v7 zawierają informacje o czasie
Ograniczenia i czego nie można uzyskać
❌ UUID v3/v5 - Nie można dekodować skrótu
Niemożliwe:
- Odzyskać oryginalną przestrzeń nazw
- Odzyskać oryginalną nazwę/wartość
- Ustalić, jakie dane zostały zahaszowane
Powód: MD5 i SHA-1 to jednokierunkowe funkcje skrótu.
❌ UUID v4 - Brak ukrytych danych
Niemożliwe:
- Uzyskać żadnych metadanych
- Ustalić czas utworzenia
- Zidentyfikować źródło
Powód: UUID v4 jest czysto losowe, nie zawiera żadnych ustrukturyzowanych informacji.
⚠️ UUID v1/v6 - ID węzła może być losowe
Ograniczenia:
- W nowoczesnych implementacjach ID węzła jest często losowe (nie jest to prawdziwy adres MAC)
- Ze względu na ochronę prywatności adresy MAC są często zastępowane losowymi wartościami
- Nie można wiarygodnie zidentyfikować konkretnej maszyny
Walidacja UUID
Dekoder działa również jako walidator UUID.
Sprawdzenie ważności UUID
Dekoder automatycznie waliduje:
- ✅ Prawidłowy format (8-4-4-4-12 znaków szesnastkowych)
- ✅ Ważne znaki szesnastkowe (0-9, a-f)
- ✅ Prawidłowa długość (36 znaków z myślnikami, 32 bez)
Rozpoznawanie nieprawidłowych UUID
Nieprawidłowe przykłady:
❌ 6ba7b810-9dad-11d1-80b4 (za krótkie)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (nieprawidłowe znaki)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (nieprawidłowy format)
Dla programistów
Implementacja w JavaScript
// Ekstrakcja wersji z UUID
function getUUIDVersion(uuid) {
const cleaned = uuid.replace(/-/g, '');
return parseInt(cleaned[12], 16);
}
// Ekstrakcja sygnatury czasowej z UUID v7
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);
}
// Przykład
const uuid = '017f22e2-79b0-7cc3-98c4-dc0c0c07398f';
console.log(getUUIDVersion(uuid)); // 7
console.log(extractV7Timestamp(uuid)); // Date object
Walidacja UUID za pomocą wyrażeń regularnych (Regex)
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);
}
Często zadawane pytania (FAQ)
Czy mogę uzyskać czas utworzenia z UUID v4?
Nie, UUID v4 jest czysto losowe i nie zawiera żadnych informacji o czasie. Dla UUID z czasem użyj v1, v6 lub v7.Dlaczego ID węzła w UUID v1 jest losowe zamiast adresu MAC?
Nowoczesne implementacje używają losowego ID węzła ze względu na ochronę prywatności. Ujawnienie prawdziwego adresu MAC mogłoby stanowić ryzyko bezpieczeństwa.Czy mogę odzyskać oryginalny URL lub nazwę z UUID v5?
Nie, UUID v5 używa skrótu SHA-1, który jest jednokierunkowy. Z haszu nie można odzyskać oryginalnych danych.Jak rozpoznać, że UUID jest losowe (v4)?
Dekoder wyświetli wersję UUID. Jeśli wersja to 4, jest to losowo generowane UUID bez dodatkowych metadanych.Czy sygnatura czasowa w UUID v1 jest dokładna?
Tak, UUID v1 ma teoretyczną dokładność 100 nanosekund (od 15 października 1582). W praktyce zależy to od dokładności zegara systemowego.Czy mogę użyć dekodera do walidacji UUID?
Tak, dekoder automatycznie waliduje format UUID i wyświetli błąd, jeśli UUID jest nieprawidłowe.Bezpieczeństwo i prywatność
Co ujawnia UUID?
UUID v1/v6:
- ⚠️ Czas utworzenia - może ujawnić synchronizację operacji
- ⚠️ Potencjalnie adres MAC - ryzyko identyfikacji urządzenia (w nowoczesnych implementacjach losowe)
UUID v4:
- ✅ Bezpieczne - nie zawiera żadnych metadanych
UUID v7:
- ⚠️ Sygnatura czasowa Unix - ujawnia czas utworzenia
Zalecenia
- ✅ Używaj UUID v4 dla maksymalnej prywatności
- ⚠️ Zachowaj ostrożność z UUID v1/v6/v7 w publicznych API (ujawniają informacje o czasie)
- ✅ UUID v5 jest deterministyczne, ale nie ujawnia oryginalnych danych
- ⚠️ Skrót MD5 nie jest całkowicie bezpieczny
Ciekawostki
- Najstarsze możliwe UUID v1: 15 października 1582 00:00:00 (początek kalendarza gregoriańskiego)
- Najnowsze UUID v7: 10889-08-02 05:31:50.655 (limit sygnatury czasowej Unix w ms)
- Dokładność UUID v1: 100 nanosekund (teoretycznie 10 milionów UUID na sekundę)
- UUID Nil:
00000000-0000-0000-0000-000000000000(specjalne “puste” UUID) - UUID Max:
ffffffff-ffff-ffff-ffff-ffffffffffff(maksymalna wartość)
Użycie w różnych systemach
PostgreSQL
-- Ekstrakcja wersji UUID
SELECT substring(id::text, 15, 1) as version
FROM users;
-- Filtrowanie według wersji
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';
MySQL
-- Sprawdzenie formatu UUID
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}$';