Decoder UUID dan Ekstraktor Cap Waktu

Decode cap waktu UUID v1, v6, dan v7 sebagai ISO UTC dan waktu Unix, lalu periksa versi dan metadata.

Coba contoh ini:

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

FormatDescription
8-4-4-4-1232 digit heksadesimal dikelompokkan dengan tanda hubung
Bit versiBit 48-51 (digit ke-13)
Bit varianBit 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

VersionApa yang dapat didekode
UUID v1
  • Cap waktu (dengan presisi 100ns, sejak 15 Oktober 1582)
  • Alamat MAC (jika tidak dirandomisasi)
  • Urutan jam (untuk menghindari tabrakan)
UUID v3/v5
  • Namespace dan nama tidak dapat dipulihkan dari hash
  • Dapat diregenerasi hanya ketika namespace dan nama diketahui
  • Dapat dibedakan v3 (MD5) dari v5 (SHA-1)
UUID v4
  • Hanya data acak
  • Tidak ada informasi yang dapat diekstrak
  • Dapat diverifikasi sebagai UUID v4 yang valid
UUID v6
  • Cap waktu (dengan presisi 100ns, sejak 15 Oktober 1582)
  • Alamat MAC (jika tidak dirandomisasi)
  • Urutan jam (untuk menghindari tabrakan)
UUID v7
  • Cap waktu Unix (presisi milidetik)
  • Komponen acak (tidak dapat didekode)

Ekstraksi Cap Waktu dari UUID

Tipe UUIDMetode Ekstraksi WaktuEpoch
UUID v1Gabungkan bit 0-31, 32-47, dan 48-59, susun ulang komponen cap waktu15 Oktober 1582
UUID v6Gabungkan bit 0-47 dengan bit 52-63; bit 48-51 adalah versi dan dikecualikan15 Oktober 1582
UUID v7Ekstrak 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:

  1. Ambil 12 digit heks terakhir (48 bit) dari UUID
  2. Formatkan dengan titik dua sebagai XX:XX:XX:XX:XX:XX
  3. 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).

Resources