← Semua alat

Generator UUID (v4 GUID)

Buat UUID (GUID) v4 acak secara instan di browser. Pelajari apa itu UUID 128-bit, perbedaan versi, peluang tabrakan, dan kapan menggunakannya.

Apa sebenarnya UUID itu

UUID, singkatan dari Universally Unique Identifier (Pengenal Unik Universal), adalah nilai 128-bit yang digunakan untuk memberi label pada sesuatu tanpa harus meminta izin dari siapa pun terlebih dahulu. Anda mungkin juga melihatnya disebut GUID, atau Globally Unique Identifier, yang hanyalah nama yang diberikan Microsoft untuk konsep yang sama di dalam Windows dan dunia .NET. Kedua istilah tersebut menggambarkan angka 128-bit yang sama dalam hampir setiap kasus yang relevan, jadi ketika seorang rekan mengatakan GUID dan Anda mengatakan UUID, Anda hampir selalu membicarakan hal yang persis sama.

128 bit tersebut biasanya ditulis sebagai 32 digit heksadesimal yang dibagi menjadi lima kelompok oleh tanda hubung, dengan pola 8-4-4-4-12. Nilai tipikal terlihat seperti 123e4567-e89b-12d3-a456-426614174000. Tanda hubung tidak memiliki arti sendiri; tanda tersebut ada semata-mata agar manusia dapat membaca nilainya tanpa kehilangan jejak. Setiap karakter adalah digit hex dari 0 hingga f, itulah mengapa UUID terasa lebih padat dari angka biasa meskipun sebenarnya hanyalah satu bilangan bulat yang sangat besar.

Token heksadesimal abstrak bercahaya yang mewakili pengenal 128-bit unik di atas latar belakang indigo gelap
UUID adalah satu angka 128-bit, ditulis sebagai 32 digit hex dalam lima kelompok yang dipisahkan tanda hubung.

Versi-versi, dan mengapa v4 mendominasi

Standar ini mendefinisikan beberapa versi, dan perbedaannya terletak pada cara bit-bit diisi. Versi 1 berbasis waktu: versi ini menggabungkan stempel waktu saat ini dan alamat MAC jaringan mesin. Hal itu membuat nilai v1 dapat diurutkan berdasarkan waktu pembuatan, tetapi juga membocorkan informasi tentang di mana dan kira-kira kapan nilai tersebut dibuat, yang tidak selalu diinginkan. Versi 3 dan 5 berbasis nama, melakukan hashing pada namespace plus nama sehingga input yang sama selalu menghasilkan pengenal yang sama.

Versi 4 mengambil jalur yang sama sekali berbeda. Versi ini hampir sepenuhnya acak. Dari 128 bit, enam dicadangkan untuk menandai versi dan varian, menyisakan 122 bit untuk diisi dengan data acak. Tidak ada stempel waktu, tidak ada alamat MAC, tidak ada namespace, hanya kebisingan. Itulah tepatnya mengapa sebagian besar generator, termasuk yang ini, menghasilkan v4 secara default. Versi ini tidak mengungkapkan apa pun tentang perangkat atau momen pembuatan, dan tidak memerlukan koordinasi antara pihak-pihak yang membuatnya. Alat di halaman ini berjalan sepenuhnya di browser Anda, sehingga nilai acak tidak pernah meninggalkan mesin Anda.

Betapa kecilnya kemungkinan tabrakan

Kekhawatiran yang wajar adalah bahwa dua UUID acak mungkin suatu hari akan identik. Dengan 122 bit acak, ruang kemungkinan nilai v4 adalah 2 pangkat 122, yang kira-kira 5,3 diikuti 36 nol. Dalam istilah manusia, Anda perlu menghasilkan miliaran UUID setiap detik selama berpuluh-puluh tahun sebelum peluang satu duplikat naik ke level yang dapat diukur. Standar itu sendiri menggambarkan kemungkinan tabrakan sebagai mendekati nol sehingga dapat diabaikan. Dalam praktiknya, tim memperlakukan v4 sebagai unik dan melanjutkan, dan mereka benar untuk melakukannya.

Tak terhitung kunci bercahaya yang berbeda melayang di ruang gelap yang luas tanpa duplikat, aksen cyan dan emas
Kumpulan nilai v4 yang mungkin sangat luas sehingga tabrakan praktis tidak mungkin terjadi.

Di mana para pengembang menggunakannya

Karena keunikan tidak memerlukan otoritas pusat, UUID sangat bersinar di tempat-tempat di mana koordinasi itu mahal atau tidak mungkin. UUID sangat cocok untuk kunci utama basis data, terutama ketika beberapa layanan masing-masing menyisipkan baris dan Anda tidak bisa berhenti untuk meminta penghitung bersama untuk nomor berikutnya. Dalam sistem terdistribusi, dua node di sisi berlawanan bumi dapat mencetak pengenal pada saat yang bersamaan tanpa pernah bertabrakan. UUID juga mendukung kunci idempotency API, di mana klien melampirkan UUID ke permintaan sehingga server dapat dengan aman mengabaikan duplikat jika jaringan mencoba ulang. Token sesi, nama file, ID acara, dan kunci pesan semuanya mengandalkan properti yang sama.

UUID versus ID auto-increment

Alternatif klasiknya adalah bilangan bulat auto-increment: 1, 2, 3, dan seterusnya. ID sekuensial lebih ringkas, terurut secara alami, dan mudah dibaca, tetapi memiliki kelemahan nyata. ID tersebut mengekspos berapa banyak record yang ada dan membiarkan pihak luar menebak nilai-nilai bersebelahan, serta memaksa setiap penyisipan melalui satu penghitung, yang menjadi bottleneck ketika Anda melakukan sharding basis data atau menggabungkan data dari banyak sumber. UUID memecahkan masalah-masalah tersebut dengan memungkinkan pihak mana pun menghasilkan kunci secara independen dan tidak mengungkapkan apa pun tentang volume atau urutan. Pertimbangannya adalah ukuran dan sedikit kurangnya lokalitas dalam indeks. Untuk sistem yang berkembang atau yang harus menyembunyikan internalnya, pertukaran itu biasanya sepadan. Anda dapat menjelajahi ini dan utilitas serupa melalui koleksi semua generator kami, atau jelajahi rangkaian alat developer yang lebih luas untuk komponen terkait.

Pertanyaan yang sering diajukan

Apakah GUID sama dengan UUID?

Untuk keperluan sehari-hari, ya. GUID adalah nama Microsoft untuk pengenal 128-bit yang sama. Satu-satunya perbedaan nyata adalah urutan byte dalam bentuk biner mentah pada beberapa sistem Windows; dalam bentuk string keduanya identik dan dapat dipertukarkan.

Versi UUID apa yang dihasilkan alat ini?

Alat ini menghasilkan versi 4, varian acak. Dari 128 bitnya, 122 diisi dengan data acak, yang membuat setiap nilai sangat tidak mungkin berulang dan berarti tidak membawa stempel waktu atau informasi perangkat.

Bisakah dua UUID pernah sama?

Secara teori probabilitasnya tidak tepat nol, tetapi dengan sekitar 5,3 kali 10 pangkat 36 nilai v4 yang mungkin, nilainya sangat kecil sehingga dianggap dapat diabaikan. Anda harus menghasilkan jumlah yang sangat astronomis sebelum tabrakan menjadi mungkin.

Mengapa menggunakan UUID daripada angka auto-increment?

UUID dapat dibuat secara independen oleh layanan mana pun tanpa penghitung bersama, tidak mengungkapkan jumlah record atau urutan, dan membuat penggabungan data dari banyak sumber menjadi mudah. ID auto-increment lebih kecil tetapi menjadi bottleneck dan membocorkan informasi pada skala besar.

Apakah UUID dihasilkan di server?

Tidak. Alat ini berjalan sepenuhnya di browser Anda, sehingga nilai acak dihasilkan secara lokal dan tidak pernah dikirim ke mana pun. Hal itu membuatnya aman digunakan untuk kunci dan token yang ingin Anda jaga tetap privat.

Apa arti pola tanda hubung?

Pengelompokan 8-4-4-4-12 hanyalah konvensi keterbacaan. Tanda hubung tidak membawa data; tanda tersebut membagi 32 digit hex menjadi potongan-potongan sehingga orang dapat memindai dan membandingkan nilai dengan lebih mudah.