Generator UUID
Opsi Format
Nomor yang dihasilkan
Generator UUID/GUID/ULID/NanoID online gratis yang mendukung 5 format ID unik, pembuatan massal hingga 100, format yang dapat disesuaikan, dan validasi UUID. Siap digunakan secara instan—sempurna untuk primary key database dan pembuatan data uji.
Rekomendasi Terkait
Apa itu UUID?
UUID (Universally Unique Identifier) adalah pengenal 128-bit yang distandarisasi oleh Open Software Foundation (OSF), didefinisikan dalam RFC 4122. Tujuannya adalah untuk memungkinkan sistem terdistribusi mengidentifikasi informasi secara unik tanpa otoritas pusat untuk penetapan ID.
UUID standar terlihat seperti `550e8400-e29b-41d4-a716-446655440000`, terdiri dari 32 digit heksadesimal yang dibagi menjadi 5 kelompok (8-4-4-4-12) oleh tanda hubung. Secara teoretis, probabilitas tabrakan UUID v4 adalah sekitar 1/10^36—jika Anda membuat 1 miliar UUID per detik selama sekitar 800 tahun, probabilitas satu tabrakan adalah sekitar 50%, yang dapat diabaikan dalam praktiknya.
UUID digunakan secara luas untuk primary key database, ID trace terdistribusi, ID permintaan, ID trace log, penamaan file unik, ID data uji, dan pengenal sesi. Hampir semua bahasa pemrograman utama menyertakan pustaka pembuatan UUID bawaan.
Kasus penggunaan
- Hasilkan UUID v4 sebagai primary key rekaman tabel selama desain database untuk menghindari kebocoran volume data dari ID auto-increment
- Gunakan ULID sebagai ID permintaan/trace global yang dapat diurutkan dalam sistem terdistribusi atau arsitektur mikroservis
- Buat UUID secara massal sebagai data uji dan ID pesan/pengguna tiruan selama pengembangan API dan pengujian integrasi
- Gunakan NanoID daripada UUID di tautan pendek frontend atau URL berbagi—lebih pendek, lebih bersih, tidak perlu encoding URL
- Gunakan UUID v5 untuk menghasilkan ID deterministik dari namespace tetap, memastikan input yang sama selalu menghasilkan output yang sama
- Gunakan fitur validasi untuk mengidentifikasi tipe dan versi ID saat menemukan ID format yang tidak dikenal di log debug atau dokumentasi pihak ketiga
Cara Penggunaan
- Pilih tipe ID yang diinginkan dari kartu di atas: UUID v4 (disarankan), v1, v5, ULID, atau NanoID
- Jika memilih UUID v5, masukkan string namespace; ID lain dapat langsung mengatur opsi format
- Toggle opsi huruf besar dan tanda hubung sesuai kebutuhan, atur jumlah pembuatan massal (1-100) melalui tombol cepat atau slider
- Klik tombol buat untuk melihat hasil—salin secara individual, salin semua sekaligus, atau ekspor sebagai TXT/JSON
- Untuk memvalidasi ID yang sudah ada, beralih ke tab "Validasi" dan tempelkan string ID untuk mendapatkan informasi tipe dan versi
Fitur
- Lima tipe ID dalam satu alat: UUID v1 (timestamp), v4 (acak), v5 (namespace), ULID (dapat diurutkan), dan NanoID (URL-safe)—satu alat mencakup semua kebutuhan stack teknologi
- Validasi & pengenalan UUID: Beralih ke tab Validasi, tempelkan ID apa pun untuk mengidentifikasi versi UUID-nya atau mendeteksi format ULID/NanoID—pemecahan masalah cepat selama debugging
- Buat massal hingga 100: Buat jumlah berapa pun dari 1 hingga 100 ID sekaligus—tidak perlu lagi menyalin satu per satu secara manual untuk data uji
- Format fleksibel: Toggle huruf besar dan tanda hubung untuk UUID agar sesuai dengan persyaratan format database, URL, dan file konfigurasi
- Ekspor & riwayat lokal: Salin semua dengan satu klik, ekspor file TXT/JSON, riwayat pembuatan disimpan secara lokal untuk pemulihan instan—operasi massal lebih efisien
- Acak aman sisi klien: Menggunakan API crypto browser untuk angka acak yang aman secara kriptografis, ID tidak pernah meninggalkan perangkat Anda, berfungsi offline
Contoh Kode
Buat UUID v4 di JavaScript
javascriptBrowser modern dan Node.js 14.17+ memiliki Web Crypto API bawaan, memungkinkan pembuatan UUID v4 langsung tanpa pustaka pihak ketiga.
// Browser modern / Node.js 19+
const id = crypto.randomUUID();
console.log(id); // "550e8400-e29b-41d4-a716-446655440000"
// Node.js 14.17 - 18.x
const crypto = require('crypto');
const id = crypto.randomUUID();Buat UUID Secara Massal di Python
pythonGunakan modul uuid pustaka standar Python untuk membuat beberapa UUID v4 secara massal, ideal untuk persiapan data uji.
import uuid
# Buat satu UUID
uid = uuid.uuid4()
print(uid)
# Buat 10 UUID secara massal
for _ in range(10):
print(uuid.uuid4())
# Buat UUID huruf besar tanpa tanda hubung
print(uuid.uuid4().hex.upper())Buat UUID dari Baris Perintah Shell
bashBuat UUID dengan cepat di terminal Linux/macOS, cocok untuk digunakan dalam skrip shell.
# Linux uuidgen # macOS uuidgen | tr 'A-Z' 'a-z' # Baca langsung dari file acak sistem (metode paling mentah) cat /proc/sys/kernel/random/uuid
ID Unik: pilihan mana yang harus dipilih?
UUID bukan satu-satunya pilihan. Auto-increment ID database dan Snowflake juga merupakan skema primary key utama. Pertimbangkan 'skala data, apakah perlu keunikan global, apakah perlu urutan waktu' sebelum memilih skema spesifik - ini dapat menghindari banyak jalan memutar.
UUID v1 / v4 / v5 / ULID / NanoID: mana yang harus dipilih?
5 jenis ID memiliki trade-off dalam skala data, kemampuan pengurutan, dan panjang karakter. Pertimbangkan 'di mana digunakan + apakah perlu urutan + apakah digunakan langsung di URL' - lebih dapat diandalkan daripada memilih berdasarkan angka itu sendiri.
| Skema | Skenario yang Direkomendasikan | Kemampuan Pengurutan | Panjang | Tingkat Rekomendasi |
|---|---|---|---|---|
UUID v1 | Sistem internal yang memerlukan urutan waktu dan dapat menerima kebocoran alamat MAC serta waktu pembuatan | Terurut berdasarkan waktu | 36 karakter | ⚠ Umumnya tidak direkomendasikan (kebocoran privasi) |
UUID v4 | Primary key database, pengenal umum, sebagian besar skenario bisnis | Tidak terurut (acak) | 36 karakter | ✓ Pilihan utama untuk penggunaan umum |
UUID v5 | Skenario yang memerlukan output deterministik (input sama → UUID sama) | Tidak terurut | 36 karakter | ✓ Direkomendasikan saat namespace tetap |
ULID | Primary key sistem terdistribusi, pelacakan log, indeks yang memerlukan urutan waktu | Terurut berdasarkan waktu (48 bit pertama adalah timestamp milidetik) | 26 karakter | ✓ Pilihan utama untuk sistem terdistribusi |
NanoID | URL pendek, pengenal cookie, referensi JS frontend | Tidak terurut (acak) | 21 karakter (default) | ✓ Pilihan utama untuk skenario ID pendek |
UUID vs Auto-increment ID Database vs Snowflake ID: cara memilih skema primary key
Ketiga skema ini adalah pilihan paling umum untuk primary key backend, yang menentukan skalabilitas, keamanan konkurensi, dan karakteristik kinerja sistem. Keputusan berdasarkan 'skala data / kebutuhan keunikan global / kebutuhan keterbacaan' dapat menghindari perubahan arsitektur di kemudian hari.
| Dimensi | UUID | Auto-increment ID Database | Snowflake |
|---|---|---|---|
Keunikan Global | ✓ Ya (secara teori) | ✗ Tidak (duplikat pada sharding) | ✓ Ya (dijamin oleh pusat data + ID mesin) |
Kebocoran Volume Data | ✓ Tidak membocorkan | ✗ Bocor langsung (peningkatan 1, 2, 3 mengungkap volume data nyata) | ⚠ Bit waktu membocorkan waktu pembuatan (tidak membocorkan volume total secara langsung) |
Kemampuan Pengurutan | ✗ Tidak terurut (ULID pengecualian) | ✓ Monotonik meningkat (ramah B-Tree) | ✓ Meningkat tren (terurut dalam milidetik yang sama) |
Sharding | ✓ Dukungan bawaan | ✗ Memerlukan generator ID atau modifikasi | ✓ Dibedakan melalui worker ID |
Biaya Penyimpanan | ⚠ Tinggi (BINARY(16) 16 byte) | ✓ Rendah (BIGINT 8 byte) | ✓ Rendah (BIGINT 8 byte) |
Skenario yang Cocok | Multi-layanan/primary key terdistribusi, pengenal eksternal, bisnis sensitif volume data | Aplikasi monolitik, sistem manajemen backend, tidak memerlukan keunikan global | IM konkurensi tinggi, nomor pesanan, ID pesan (perlu implementasi sendiri) |
Best Practices
Primary key database produksi: pilih UUID v4 atau ULID, hindari v1
UUID v1 menggunakan 48 bit terakhir untuk alamat MAC dan 48 bit pertama untuk timestamp dengan presisi 100ns——**kedua field ini dapat direkonstruksi menjadi sidik jari mesin dan waktu pembuatan**. v1 secara eksplisit ditandai 'only when backward compatibility is needed' (hanya jika kompatibilitas mundur diperlukan) di RFC 4122. Lingkungan produksi sebaiknya memilih v4 (acak) atau ULID (dapat diurutkan); v1 hanya boleh digunakan sesekali untuk debugging atau pelacakan mesin pembuat. **Jangan pernah** menggunakan v1 sebagai ID pengguna, ID perangkat, atau nomor pesanan yang diekspos ke publik.
Bagaimana cara memilih antara UUID v1, v4, dan v5?UUID 128 bit ≠ entropi: v4 hanya memiliki 122 bit entropi aktual
Meskipun UUID v4 memiliki total 128 bit, **4 bit pertama adalah nomor versi (tetap 0100), 2 bit terakhir adalah nomor varian (tetap 10)** — benar-benar hanya 122 bit yang acak. Ini adalah batasan format yang ditentukan oleh RFC 4122, dan **library UUID v4 mana pun yang mengklaim '128 bit sepenuhnya acak' adalah implementasi yang salah**. Selain itu, 2 bit tinggi byte ke-7 dari 64 bit terakhir v4 juga merupakan field varian, sehingga entropi aktualnya lebih rendah. Saat merancang sistem, hitung keamanan berdasarkan 122 bit (bukan 128 bit) untuk menghindari meremehkan risiko tabrakan.
RFC 4122 - Spesifikasi UUIDSelalu gunakan kolom BINARY(16) untuk menyimpan UUID, bukan VARCHAR(36)
String UUID v4 `550e8400-e29b-41d4-a716-446655440000` terlihat ringkas, tetapi sebenarnya VARCHAR(36) menyimpan 36 byte + 2 byte panjang = 38 byte, **menggunakan 2.4 kali lebih banyak ruang penyimpanan daripada BINARY(16)**. MySQL/PostgreSQL/MSSQL semuanya memiliki fungsi UUID bawaan untuk penulisan langsung ke BINARY(16), dan ukuran indeks juga berkurang setengah. Saat tabel melebihi 100 juta baris, indeks primary key VARCHAR(36) menambah 1-2 level pada tinggi B-Tree, **menurunkan kinerja kueri sebesar 30-50%**. Konversi ke string hanya saat ditampilkan di frontend, dan selalu transmisikan sebagai BINARY(16) di lapisan bisnis.
Perbandingan UUID / ULID / NanoIDGunakan NanoID atau UUID tanpa tanda hubung untuk skenario URL, hindari encoding URL
Set karakter UUID v4 adalah `[0-9a-f-]`, dan **tanda hubung - memerlukan dua kali encoding URL dalam path URL** (pertama di-escape ke %2D, lalu ke %252D), yang terlihat sangat jelek. Ada dua solusi: **(1) Gunakan NanoID langsung untuk skenario URL** (default 21 karakter URL-safe); **(2) UUID v4 + tanda hubung nonaktif** untuk menghasilkan 32 digit hex murni yang dapat digunakan sebagai segmen path URL tanpa encoding. Untuk skenario cookie, prioritaskan NanoID (A-Za-z0-9_-) atau UUID tanpa tanda hubung, hindari karakter `+` `/` `=` (set karakter Base64).
Dapatkah saya menghapus tanda hubung atau mengubah UUID menjadi huruf besar?Selalu hapus duplikat setelah pembangkitan massal, bug generator dapat menyebabkan duplikat
Probabilitas tabrakan UUID v4 sekitar 1/10^36, secara teori tidak perlu menghapus duplikat——**tetapi dalam praktik, jangan percaya teori**. Kegagalan RNG kernel Linux, bug implementasi `crypto.randomUUID` di versi awal Node.js, dan kurangnya sumber entropi saat VM cloud boot adalah insiden nyata yang menyebabkan UUID yang dihasilkan secara massal mengandung nilai duplikat. **Setelah membangkitkan 100rb+ UUID secara massal di lingkungan produksi, selalu lakukan verifikasi duplikat dengan `SELECT id, COUNT(*) FROM t GROUP BY id HAVING COUNT(*) > 1`**, dan segera rollback versi generator jika ditemukan masalah. Ini adalah praktik terbaik yang dipelajari dari pengalaman pahit dalam skenario migrasi data dan impor massal.
Dapatkah saya membuat beberapa UUID sekaligus?Pertanyaan Umum
Apa perbedaan antara UUID dan GUID?
UUID (Universally Unique Identifier) dan GUID (Globally Unique Identifier) pada dasarnya adalah hal yang sama dengan nama berbeda: UUID adalah nama standar formal IETF (RFC 4122), sedangkan GUID adalah istilah pilihan Microsoft di ekosistem Windows. Keduanya memiliki format 128-bit yang identik seperti `550e8400-e29b-41d4-a716-446655440000`. UUID standar yang dihasilkan oleh alat ini dapat digunakan secara bergantian dalam skenario apa pun yang membutuhkan GUID.
Bagaimana cara memilih antara UUID v1, v4, dan v5?
UUID v1 berbasis timestamp dan alamat MAC—terurut berdasarkan waktu dan dapat dilacak, tetapi dapat membocorkan informasi alamat MAC. UUID v4 sepenuhnya acak, pilihan yang paling umum digunakan dan aman, cocok untuk sebagian besar skenario primary key dan pengenal. UUID v5 adalah versi berbasis namespace hash SHA-1—namespace yang sama + nama yang sama selalu menghasilkan UUID yang sama, ideal untuk skenario output deterministik. Untuk pengembangan umum, UUID v4 adalah pilihan default.
Apa keunggulan ULID dan NanoID dibandingkan UUID v4?
ULID (26 karakter) lebih pendek dari UUID (36 karakter dengan tanda hubung) dan dapat diurutkan secara leksikografis berdasarkan waktu pembuatan, menjadikannya ideal untuk indeks database dan pelacakan log. NanoID (default 21 karakter) bahkan lebih pendek dan lebih cepat, menggunakan karakter URL-safe sehingga tidak perlu escaping di URL dan cookie—sekitar 30% lebih kecil dari UUID. Ketiganya memiliki probabilitas tabrakan yang dapat diabaikan, tetapi kemampuan pengurutan ULID bersinar dalam sistem terdistribusi, sedangkan NanoID lebih ramah untuk skenario frontend/URL.
Dapatkah saya membuat beberapa UUID sekaligus?
Ya. Alat ini mendukung pembuatan massal dari 1 hingga 100 ID. Atur jumlah melalui tombol cepat atau slider, lalu buat dengan satu klik—sempurna untuk pembuatan data uji, impor massal, dan menyiapkan ID unik untuk skrip. Setelah dibuat, Anda dapat menyalin semua hasil sekaligus atau mengekspor sebagai file TXT atau JSON.
Panduan pembuatan massalDapatkah saya memvalidasi apakah sebuah string adalah UUID yang valid?
Ya. Beralih ke tab "Validasi" dan tempelkan string apa pun—alat ini secara otomatis mengidentifikasi dan memvalidasi: UUID standar (v1/v3/v4/v5) akan melaporkan nomor versi spesifiknya, dan juga mengenali format ULID (Crockford Base32 26 karakter) dan NanoID (karakter URL-safe 21 karakter), menjadikannya sangat nyaman untuk memecahkan masalah format ID dengan cepat selama pengembangan dan debugging.
Apakah membuat UUID secara online aman? Apakah ID saya akan bocor ke server?
Sama sekali aman. Semua pembuatan dan validasi ID berjalan secara lokal di browser Anda melalui JavaScript, menggunakan crypto.getRandomValues() untuk angka acak yang aman secara kriptografis. Tidak ada ID yang dihasilkan dikirim ke server mana pun, dan tidak ada riwayat pembuatan yang disimpan di cloud. Ini berfungsi bahkan saat offline, menjadikannya cocok untuk intranet perusahaan dan proyek sensitif.
Dapatkah saya menghapus tanda hubung atau mengubah UUID menjadi huruf besar?
Ya. Untuk UUID v1/v4/v5, alat ini menyediakan dua toggle: "Huruf Besar" mengubah case output, dan "Tanda Hubung" memungkinkan Anda menghapus tanda hubung (berguna untuk URL, file konfigurasi, atau database yang membutuhkan format tanpa tanda hubung). ULID dan NanoID tidak memiliki tanda hubung secara default dan juga mendukung peralihan case.
Mengapa menggunakan alat online daripada baris perintah untuk membuat UUID?
Alat baris perintah (seperti uuidgen Linux, modul uuid Python) membutuhkan lingkungan pengembangan. Alat online bekerja secara instan di browser Anda tanpa perlu instalasi. Selain itu, alat ini mengintegrasikan pengenalan versi UUID, ekspor massal, dan fitur riwayat lokal—lebih nyaman saat bekerja lintas perangkat (misalnya, membuat ID untuk rekan non-teknis) atau saat Anda membutuhkan ID dengan cepat.
Glosarium
- UUID
- Universally Unique Identifier, panjang 128-bit, standar RFC 4122, versi umum meliputi v1 (timestamp+MAC), v4 (acak), v5 (hash SHA-1).
- GUID
- Globally Unique Identifier, istilah Microsoft untuk UUID—keduanya identik dalam format dan tujuan.
- ULID
- Universally Unique Lexicographically Sortable Identifier, 26 karakter menggunakan encoding Crockford Base32, 48 bit pertama adalah timestamp—dapat diurutkan berdasarkan waktu pembuatan.
- NanoID
- Generator ID unik ringan, default 21 karakter URL-safe (A-Za-z0-9_-), lebih pendek dan lebih cepat dari UUID, ideal untuk skenario frontend dan URL.
- UUID v1
- Versi UUID berbasis timestamp dan alamat MAC, dapat diurutkan berdasarkan waktu tetapi dapat membocorkan alamat MAC dan waktu pembuatan—kurang aman daripada v4.
- UUID v4
- Versi UUID sepenuhnya berbasis angka acak, paling banyak digunakan, probabilitas tabrakan dapat diabaikan, pilihan default dalam pengembangan.
- UUID v5
- Versi UUID berbasis namespace hash SHA-1—namespace yang sama + input nama yang sama menghasilkan output UUID yang identik, cocok untuk skenario deterministik.
- Probabilitas Tabrakan
- Probabilitas bahwa dua ID yang dihasilkan secara acak adalah identik. Probabilitas tabrakan UUID v4 adalah sekitar 1 dalam 17 miliar triliun, dapat diabaikan dalam rekayasa praktis.
- Crockford Base32
- Encoding Base32 yang dirancang oleh Douglas Crockford yang menggunakan huruf besar dan digit dengan mengecualikan I/L/O/U untuk menghindari karakter yang ambigu—digunakan oleh ULID.
Perbandingan UUID / ULID / NanoID
| Fitur | UUID v4 | ULID | NanoID |
|---|---|---|---|
| Panjang | 36 karakter (dengan tanda hubung) / 32 karakter (tanpa tanda hubung) | 26 karakter | 21 karakter (default) |
| Set Karakter | Heksadesimal (0-9a-f) | Crockford Base32 (32 karakter) | URL-safe (64 karakter) |
| Kemampuan Pengurutan | Tidak terurut (acak) | Terurut berdasarkan waktu | Tidak terurut (acak) |
| URL-safe | Perlu escaping (tanda hubung + alfanumerik) | Sebagian besar aman (huruf besar + digit) | Sepenuhnya URL-safe |
| Kecepatan Pembuatan | Cepat | Cepat | ~60% lebih cepat dari UUID |
| Probabilitas Tabrakan | 1/10^36 | 1/10^36 | 1/10^34 (pada 21 karakter) |
| Kasus Penggunaan Khas | Primary key database, ID umum | Sistem terdistribusi, pelacakan log | URL pendek, ID frontend, cookie |
Metode Pembuatan UUID Berdasarkan Bahasa
| Bahasa | Kode |
|---|---|
| JavaScript | crypto.randomUUID() // Browser modern / Node.js 19+ |
| Python | import uuid; uuid.uuid4() |
| Java | UUID.randomUUID() |
| Go | github.com/google/uuid; uuid.New() |
| Bash/Linux | uuidgen atau cat /proc/sys/kernel/random/uuid |
Authoritative References
- IETFRFC 4122 - Spesifikasi UUID
- GitHubSpesifikasi ULID (GitHub)
- OfficialSitus Resmi NanoID
- Simulator Buta Warna
- Konverter Warna
- Konverter .htaccess ke Nginx
- Konverter SQL
- Parser Cookie
- Cron Expression Generator
- Cron Expression Validator
- Format CSS
- Kompres CSS
- CSV ke Excel
- Konverter Mata Uang
- Diff Checker
- Generator Favicon
- Format XML
- Konverter Heksadesimal
- Format HTML
- Kompres HTML
- HTML ke Markdown
- Markdown ke HTML
- Formatter JavaScript
- Kompres JS
- Alat Pemformat JSX
- Kompres JSX
- Pengelompokan kata kunci
- Generator Lorem Ipsum
- Generator Tabel Markdown
- Meta Tag Generator
- Pembuat Kata Sandi
- Alat Pemeriksa Kekuatan Kata Sandi
- Generator QR Code/Barcode
- Alat Uji Regex
- Generator Slug
- Generator SQL
- Alat Pemformat SQL
- Penghitung Kata
- Alat Waktu
- Format TypeScript
- Kompres TypeScript
- Format TSX
- Kompres TSX
- Konverter Unix Timestamp
- Generator UUID
- Format YAML
- Konverter Kasus