Hasilkan Identifikasi Unik Universal (UUID) untuk berbagai aplikasi. Buat UUID versi 1 (berbasis waktu) dan versi 4 (acak) untuk digunakan dalam sistem terdistribusi, basis data, dan lainnya.
Pengidentifikasi Unik Universal (UUID) adalah angka 128-bit yang digunakan untuk mengidentifikasi informasi dalam sistem komputer. UUID distandarisasi oleh Open Software Foundation (OSF) sebagai bagian dari Lingkungan Komputasi Terdistribusi (DCE). Identifikasi ini dirancang untuk unik di seluruh ruang dan waktu, menjadikannya ideal untuk berbagai aplikasi dalam sistem terdistribusi dan seterusnya.
Alat pembangkit UUID ini memungkinkan Anda untuk membuat UUID versi 1 (berbasis waktu) dan versi 4 (acak). Identifikasi ini berguna dalam berbagai skenario di mana identifikasi unik diperlukan, seperti kunci basis data, sistem terdistribusi, dan protokol jaringan.
UUID biasanya direpresentasikan sebagai 32 digit heksadesimal, ditampilkan dalam lima grup yang dipisahkan oleh tanda hubung, dalam bentuk 8-4-4-4-12 untuk total 36 karakter (32 karakter alfanumerik dan 4 tanda hubung). Sebagai contoh:
1550e8400-e29b-41d4-a716-446655440000
2
128 bit dari UUID dibagi menjadi bidang tertentu, masing-masing membawa informasi yang berbeda tergantung pada versi UUID:
Berikut adalah diagram yang menggambarkan struktur UUID:
Ada beberapa versi UUID, masing-masing dengan metode generasi yang berbeda:
Alat ini fokus pada menghasilkan UUID Versi 1 dan Versi 4.
UUID versi 1 dihasilkan menggunakan komponen berikut:
Formula untuk menghasilkan UUID Versi 1 dapat dinyatakan sebagai:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
UUID versi 4 dihasilkan menggunakan generator nomor acak yang kuat secara kriptografis. Formula ini sederhana:
1UUID = random_128_bit_number
2
Dengan bit tertentu diatur untuk menunjukkan versi (4) dan varian.
UUID memiliki banyak aplikasi di berbagai domain ilmu komputer dan rekayasa perangkat lunak:
Kunci Basis Data: UUID sering digunakan sebagai kunci utama dalam basis data, terutama dalam sistem terdistribusi di mana beberapa node mungkin menghasilkan catatan secara bersamaan.
Sistem Terdistribusi: Dalam sistem terdistribusi berskala besar, UUID membantu dalam mengidentifikasi sumber daya, transaksi, atau peristiwa secara unik di berbagai node atau pusat data.
Alamat Konten: UUID dapat digunakan untuk membuat pengidentifikasi unik untuk konten dalam sistem penyimpanan yang dapat diakses berdasarkan konten.
Manajemen Sesi: Aplikasi web sering menggunakan UUID untuk mengelola sesi pengguna, memastikan setiap sesi memiliki pengidentifikasi unik.
Identifikasi Perangkat IoT: Dalam aplikasi Internet of Things (IoT), UUID dapat digunakan untuk mengidentifikasi perangkat individu secara unik dalam jaringan.
Meskipun UUID banyak digunakan, ada pendekatan alternatif untuk menghasilkan pengidentifikasi unik:
ID yang Meningkat Secara Otomatis: Sederhana dan umum digunakan dalam sistem basis data tunggal, tetapi tidak cocok untuk lingkungan terdistribusi.
ID Berbasis Waktu: Dapat berguna untuk data yang terurut berdasarkan waktu tetapi mungkin menghadapi masalah tabrakan dalam skenario dengan banyak koneksi.
ID Snowflake: Dikembangkan oleh Twitter, ID ini menggabungkan cap waktu dan nomor pekerja untuk menghasilkan ID unik dalam sistem terdistribusi.
ULID (Pengidentifikasi Unik Secara Universal yang Dapat Diurutkan Secara Lexicographically): Alternatif yang lebih baru yang bertujuan untuk lebih ramah manusia dan dapat diurutkan dibandingkan UUID.
Konsep UUID pertama kali diperkenalkan dalam Sistem Komputasi Jaringan Apollo dan kemudian distandarisasi oleh Open Software Foundation (OSF) sebagai bagian dari Lingkungan Komputasi Terdistribusi (DCE) pada tahun 1990-an. Spesifikasi awal diterbitkan pada tahun 1997 sebagai ISO/IEC 11578:1996 dan kemudian direvisi pada tahun 2005 sebagai bagian dari ISO/IEC 9834-8:2005.
Tonggak sejarah kunci dalam sejarah UUID:
Seiring waktu, UUID telah menjadi alat penting dalam sistem terdistribusi dan desain basis data, dengan berbagai implementasi dan adaptasi di berbagai bahasa pemrograman dan platform.
Berikut adalah contoh menghasilkan UUID dalam berbagai bahasa pemrograman:
1import uuid
2
3## Menghasilkan UUID Versi 4 (acak)
4random_uuid = uuid.uuid4()
5print(f"UUID Versi 4: {random_uuid}")
6
7## Menghasilkan UUID Versi 1 (berbasis waktu)
8time_based_uuid = uuid.uuid1()
9print(f"UUID Versi 1: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Menghasilkan UUID Versi 4 (acak)
4const randomUuid = uuidv4();
5console.log(`UUID Versi 4: ${randomUuid}`);
6
7// Menghasilkan UUID Versi 1 (berbasis waktu)
8const timeBasedUuid = uuidv1();
9console.log(`UUID Versi 1: ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // Menghasilkan UUID Versi 4 (acak)
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("UUID Versi 4: " + randomUuid);
8
9 // Menghasilkan UUID Versi 1 (berbasis waktu)
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("UUID Versi 1: " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## Menghasilkan UUID Versi 4 (acak)
4random_uuid = SecureRandom.uuid
5puts "UUID Versi 4: #{random_uuid}"
6
7## Ruby tidak memiliki metode bawaan untuk UUID Versi 1
8## Anda perlu menggunakan gem seperti 'uuidtools' untuk itu
9
1<?php
2// Menghasilkan UUID Versi 4 (acak)
3$randomUuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
4 mt_rand(0, 0xffff), mt_rand(0, 0xffff),
5 mt_rand(0, 0xffff),
6 mt_rand(0, 0x0fff) | 0x4000,
7 mt_rand(0, 0x3fff) | 0x8000,
8 mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
9);
10echo "UUID Versi 4: " . $randomUuid . "\n";
11
12// PHP tidak memiliki metode bawaan untuk UUID Versi 1
13// Anda perlu menggunakan pustaka seperti 'ramsey/uuid' untuk itu
14?>
15
Temukan lebih banyak alat yang mungkin berguna untuk alur kerja Anda