Apa itu Dekode UUID?
dekode UUID adalah proses menganalisis UUID untuk mengekstrak informasi tentang:
- Version: Versi UUID mana (1-8) berdasarkan 4 bit pada posisi 48-51
- Variant: Varian UUID mana (biasanya RFC 4122) berdasarkan bit 64-65
- Components: Mengekstrak cap waktu, ID node, atau data lain berdasarkan versi
- Waktu pembuatan: Untuk UUID berbasis waktu (v1, v6, v7)
Example: 123e4567-e89b-12d3-a456-426614174000 adalah UUID Versi 1 dengan cap waktu 2228-06-25T20:01:28.545Z saat ditampilkan dengan presisi milidetik JavaScript.
Ikhtisar Struktur UUID
| Format | Description |
|---|---|
| 8-4-4-4-12 | 32 digit heksadesimal dikelompokkan dengan tanda hubung |
| Bit versi | Bit 48-51 (digit ke-13) |
| Bit varian | Bit 64-65 (digit ke-17) |
Nomor versi muncul sebagai digit heks pertama dalam kelompok ketiga (mis., 123e4567-e89b-12d3-a456-426614174000 untuk versi 1).
Dekode menurut Versi UUID
| Version | Apa yang dapat didekode |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
Ekstraksi Cap Waktu dari UUID
| Tipe UUID | Metode Ekstraksi Waktu | Epoch |
|---|---|---|
| UUID v1 | Gabungkan bit 0-31, 32-47, dan 48-59, susun ulang komponen cap waktu | 15 Oktober 1582 |
| UUID v6 | Gabungkan bit 0-47 dengan bit 52-63; bit 48-51 adalah versi dan dikecualikan | 15 Oktober 1582 |
| UUID v7 | Ekstrak bit 0-47 (milidetik Unix) | 1 Januari 1970 |
Aturan Validasi UUID
- Pemeriksaan format: 8-4-4-4-12 digit heksadesimal dengan tanda hubung
- Pemeriksaan versi: Karakter ke-13 harus 1-8
- Pemeriksaan varian: Karakter ke-17 harus 8, 9, A, atau B (untuk RFC 4122)
Ekspresi reguler untuk validasi UUID dasar:
^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$Contoh cap waktu UUID v7
017f22e2-79b0-7cc3-98c4-dc0c0c07398f adalah vektor uji RFC 9562 untuk UUIDv7. 48 bit pertamanya adalah milidetik Unix, yang ter-decode menjadi 2022-02-22T19:22:22.000Z, 1645557742000 milidetik, atau 1645557742 seconds.
Hasilkan baru UUID v7, atau lanjutkan dengan Konverter Cap Waktu Unix. Tautan ini tidak menyertakan UUID yang Anda masukkan.
Aplikasi Praktis
- Analisis forensik: Menentukan kapan ID dibuat
- Debugging: Melacak perilaku sistem melalui cap waktu ID
- Auditing: Memvalidasi integritas kronologis
- Pemeriksaan format: Mendeteksi ID yang salah format; UUID yang valid tidak membuktikan keaslian
- Pemulihan data: Membangun kembali hubungan temporal
- Migrasi sistem: Memahami rincian implementasi UUID lama
Ekstraksi Alamat MAC (v1/v6)
Untuk UUID v1 dan v6, Anda sering dapat mengekstrak pengenal node (alamat MAC) jika tidak dirandomisasi saat pembuatan:
- Ambil 12 digit heks terakhir (48 bit) dari UUID
- Formatkan dengan titik dua sebagai XX:XX:XX:XX:XX:XX
- Periksa apakah alamat MAC nyata atau random dengan melihat bit multicast
Jika byte pertama memiliki bit 0x01 diset, kemungkinan besar ID node dirandomisasi daripada alamat MAC sebenarnya.
Pertanyaan yang Sering Diajukan
Apakah saya bisa menentukan tepat kapan UUID v4 dibuat?
Tidak. UUID v4 sepenuhnya acak tanpa informasi cap waktu. Waktu pembuatan tidak dapat ditentukan dari nilai UUID v4.
Seberapa akurat cap waktu dalam UUID berbasis waktu?
UUID v1/v6 memiliki presisi 100-nanodetik. UUID v7 memiliki presisi milidetik. Namun, akurasi jam sistem sebenarnya dapat bervariasi.
Bisakah saya mengonversi antar versi UUID?
Tidak, Anda tidak dapat mengonversi langsung antar versi sambil mempertahankan nilai identifier yang sama. Versi berbeda memiliki struktur yang berbeda secara mendasar.
Bisakah saya mengidentifikasi komputer yang menghasilkan UUID v1?
Jika ID node tidak dirandomisasi, UUID v1 mungkin berisi alamat MAC dari sistem yang menghasilkan. Namun, banyak implementasi modern merandomisasi ini demi privasi.
Bagaimana cara mengetahui apakah sebuah UUID valid?
Periksa format (8-4-4-4-12 digit heks), verifikasi digit versi (karakter ke-13) adalah 1-8, dan konfirmasi bit varian (karakter ke-17 adalah 8, 9, A, atau B untuk UUID RFC 4122).