Apa itu UUID v1?
Versi UUID 1 adalah pengenal 128-bit berbasis waktu (string 36 karakter) dari RFC 4122. Ini menggabungkan:
- Timestamp: Nilai 60-bit (presisi 100-nanodetik sejak 1582-10-15)
- Urutan jam: Penghitung 14-bit untuk penyesuaian jam
- ID Node: Nilai 48-bit (biasanya alamat MAC)
Contoh format: 2ed6657d-e927-11eb-9a03-0242ac130003
Cara kerja UUID v1
- Hitung cap waktu saat ini (interval 100ns sejak 1582-10-15)
- Dapatkan/tingkatkan urutan jam 14-bit (untuk keunikan jika jam mundur)
- Dapatkan ID node 48-bit (biasanya dari alamat MAC)
- Atur bit versi (0001) dan bit varian (10)
- Susun sebagai 32 digit heksadesimal dengan tanda hubung: format 8-4-4-4-12
Keuntungan & Pertimbangan
Advantages | Considerations |
---|---|
|
|
Struktur UUID v1
Bits | Content |
---|---|
0-31 | 32 bit bawah dari cap waktu |
32-47 | 16 bit tengah dari cap waktu |
48-59 | 12 bit atas dari cap waktu |
60-63 | Versi (0001 untuk v1) |
64-65 | Varian (10 untuk RFC4122) |
66-79 | Urutan jam (14 bit) |
80-127 | ID Node (48 bit) |
UUID v1 vs. versi lain
Version | Berdasarkan | Kasus penggunaan | Privacy |
---|---|---|---|
UUID v1 | Waktu + MAC | ID berurutan waktu | ⚠️ Mengungkap alamat MAC |
UUID v3 | Namespace + MD5 | ID deterministik | ✅ Privat |
UUID v4 | Random | ID acak aman | ✅ Privat |
UUID v5 | Namespace + SHA-1 | ID deterministik | ✅ Privat |
UUID v6 | Waktu (diurutkan ulang) | ID yang dapat diurutkan | ⚠️ Mengungkap alamat MAC |
UUID v7 | Waktu + acak | ID yang dapat diurutkan | ✅ Privat |
Kasus Penggunaan Umum
- Kunci basis data: Basis data terdistribusi
- Log audit: Pelacakan berurutan waktu
- ID Transaksi: Proses bisnis
- Pelacakan sesi: Aplikasi web
- Pengalamatan konten: Sistem CMS
- Pesan IoT: Komunikasi perangkat
Pertanyaan yang Sering Diajukan
Apakah UUID v1 aman secara kriptografi?
Tidak. UUID v1 dapat diprediksi jika cap waktu dan alamat MAC diketahui. Untuk keamanan, gunakan UUID v4 acak sebagai gantinya.
Apakah nilai UUID v1 dapat bertabrakan?
Tabrakan sangat tidak mungkin terjadi dalam praktik karena presisi cap waktu, penghitung urutan jam, dan pengenal node.
Bisakah saya mengekstrak waktu pembuatan dari UUID v1?
Ya. Komponen cap waktu dapat diekstrak dengan algoritma yang sesuai yang tersedia di sebagian besar pustaka UUID.
Apakah UUID v1 dapat diurutkan berdasarkan waktu pembuatan?
Ya, tetapi diperlukan fungsi pengurutan khusus. Perbandingan string langsung tidak akan berhasil karena bit waktu tidak berurutan.
Apakah UUID v1 mengungkap alamat MAC saya?
Secara default, ya. Sebagian besar implementasi menggunakan alamat MAC untuk ID node. Implementasi yang fokus pada privasi mungkin menggunakan ID node acak sebagai gantinya.