Hasilkan Pengenal Unik Secara Universal (UUID) untuk pelbagai aplikasi. Buat kedua-dua versi 1 (berdasarkan masa) dan versi 4 (rawak) UUID untuk digunakan dalam sistem teragih, pangkalan data, dan banyak lagi.
Pengenal Unik Secara Universal (UUID) adalah nombor 128-bit yang digunakan untuk mengenal pasti maklumat dalam sistem komputer. UUID telah distandardkan oleh Open Software Foundation (OSF) sebagai sebahagian daripada Persekitaran Pengkomputeran Teragih (DCE). Pengenal ini direka untuk menjadi unik merentasi ruang dan masa, menjadikannya ideal untuk pelbagai aplikasi dalam sistem teragih dan lebih lagi.
Alat penjana UUID ini membolehkan anda mencipta UUID versi 1 (berdasarkan masa) dan versi 4 (rawak). Pengenal ini berguna dalam pelbagai senario di mana pengenalan unik diperlukan, seperti kunci pangkalan data, sistem teragih, dan protokol rangkaian.
UUID biasanya diwakili sebagai 32 digit heksadesimal, dipaparkan dalam lima kumpulan yang dipisahkan oleh tanda hubung, dalam bentuk 8-4-4-4-12 untuk jumlah 36 watak (32 watak alfanumerik dan 4 tanda hubung). Contohnya:
1550e8400-e29b-41d4-a716-446655440000
2
128 bit UUID dibahagikan kepada bidang tertentu, masing-masing membawa maklumat yang berbeza bergantung kepada versi UUID:
Berikut adalah diagram yang menggambarkan struktur UUID:
Terdapat beberapa versi UUID, masing-masing dengan kaedah penjanaan tersendiri:
Alat ini memberi tumpuan kepada penjanaan UUID Versi 1 dan Versi 4.
UUID Versi 1 dijana menggunakan komponen berikut:
Formula untuk menjana UUID Versi 1 boleh dinyatakan sebagai:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
UUID Versi 4 dijana menggunakan penjana nombor rawak yang kuat secara kriptografi. Formula adalah semata-mata:
1UUID = random_128_bit_number
2
Dengan bit tertentu ditetapkan untuk menunjukkan versi (4) dan varian.
UUID mempunyai pelbagai aplikasi di pelbagai domain sains komputer dan kejuruteraan perisian:
Kunci Pangkalan Data: UUID sering digunakan sebagai kunci utama dalam pangkalan data, terutamanya dalam sistem teragih di mana beberapa nod mungkin menghasilkan rekod secara serentak.
Sistem Teragih: Dalam sistem teragih berskala besar, UUID membantu dalam mengenal pasti sumber, transaksi, atau peristiwa dengan unik merentasi pelbagai nod atau pusat data.
Pengalamatan Kandungan: UUID boleh digunakan untuk mencipta pengenalan unik untuk kandungan dalam sistem penyimpanan yang boleh diakses melalui kandungan.
Pengurusan Sesi: Aplikasi web sering menggunakan UUID untuk mengurus sesi pengguna, memastikan setiap sesi mempunyai pengenalan unik.
Pengenalan Peranti IoT: Dalam aplikasi Internet of Things (IoT), UUID boleh digunakan untuk mengenal pasti peranti individu dalam rangkaian dengan unik.
Walaupun UUID digunakan secara meluas, terdapat pendekatan alternatif untuk menjana pengenalan unik:
ID auto-bertambah: Mudah dan biasa digunakan dalam sistem pangkalan data tunggal, tetapi tidak sesuai untuk persekitaran teragih.
ID berdasarkan cap waktu: Boleh berguna untuk data yang diatur mengikut masa tetapi mungkin menghadapi isu perlanggaran dalam senario keserentakan tinggi.
ID Snowflake: Dibangunkan oleh Twitter, ID ini menggabungkan cap waktu dan nombor pekerja untuk menjana ID unik dalam sistem teragih.
ULID (Pengenal Unik Secara Universal yang Boleh Diatur Secara Lexicographically): Alternatif yang lebih baru yang bertujuan untuk lebih mesra manusia dan boleh diatur berbanding UUID.
Konsep UUID pertama kali diperkenalkan dalam Sistem Pengkomputeran Rangkaian Apollo dan kemudiannya distandardkan oleh Open Software Foundation (OSF) sebagai sebahagian daripada Persekitaran Pengkomputeran Teragih (DCE) pada tahun 1990-an. Spesifikasi awal diterbitkan pada tahun 1997 sebagai ISO/IEC 11578:1996 dan kemudiannya disemak pada tahun 2005 sebagai sebahagian daripada ISO/IEC 9834-8:2005.
Pencapaian utama dalam sejarah UUID:
Dari semasa ke semasa, UUID telah menjadi alat penting dalam sistem teragih dan reka bentuk pangkalan data, dengan pelbagai pelaksanaan dan penyesuaian di pelbagai bahasa pengaturcaraan dan platform.
Berikut adalah contoh menjana UUID dalam pelbagai bahasa pengaturcaraan:
1import uuid
2
3## Hasilkan UUID Versi 4 (rawak)
4random_uuid = uuid.uuid4()
5print(f"UUID Versi 4: {random_uuid}")
6
7## Hasilkan UUID Versi 1 (berdasarkan masa)
8time_based_uuid = uuid.uuid1()
9print(f"UUID Versi 1: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Hasilkan UUID Versi 4 (rawak)
4const randomUuid = uuidv4();
5console.log(`UUID Versi 4: ${randomUuid}`);
6
7// Hasilkan UUID Versi 1 (berdasarkan masa)
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 // Hasilkan UUID Versi 4 (rawak)
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("UUID Versi 4: " + randomUuid);
8
9 // Hasilkan UUID Versi 1 (berdasarkan masa)
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## Hasilkan UUID Versi 4 (rawak)
4random_uuid = SecureRandom.uuid
5puts "UUID Versi 4: #{random_uuid}"
6
7## Ruby tidak mempunyai kaedah terbina dalam untuk UUID Versi 1
8## Anda perlu menggunakan gem seperti 'uuidtools' untuk itu
9
1<?php
2// Hasilkan UUID Versi 4 (rawak)
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 mempunyai kaedah terbina dalam untuk UUID Versi 1
13// Anda perlu menggunakan perpustakaan seperti 'ramsey/uuid' untuk itu
14?>
15
Temui lebih banyak alat yang mungkin berguna untuk aliran kerja anda