Generați Identificatori Unici Universali (UUID) pentru diverse aplicații. Creați atât UUID-uri de versiune 1 (bazate pe timp), cât și UUID-uri de versiune 4 (aleatorii) pentru utilizare în sisteme distribuite, baze de date și altele.
Un Identificator Unic Universal (UUID) este un număr de 128 de biți folosit pentru a identifica informații în sistemele informatice. UUID-urile sunt standardizate de Open Software Foundation (OSF) ca parte a Mediului de Calcul Distribuit (DCE). Aceste identificatoare sunt concepute pentru a fi unice atât în timp, cât și în spațiu, făcându-le ideale pentru diverse aplicații în sisteme distribuite și nu numai.
Acest instrument de generare UUID vă permite să creați atât UUID-uri de versiunea 1 (bazate pe timp), cât și UUID-uri de versiunea 4 (aleatorii). Aceste identificatoare sunt utile în diverse scenarii în care este necesară identificarea unică, cum ar fi cheile de bază de date, sistemele distribuite și protocoalele de rețea.
Un UUID este de obicei reprezentat ca 32 de cifre hexazecimale, afișate în cinci grupuri separate prin cratime, în forma 8-4-4-4-12 pentru un total de 36 de caractere (32 de caractere alfanumerice și 4 cratime). De exemplu:
1550e8400-e29b-41d4-a716-446655440000
2
Cei 128 de biți ai unui UUID sunt împărțiți în câmpuri specifice, fiecare purtând informații diferite în funcție de versiunea UUID:
Iată un diagramă care ilustrează structura UUID:
Există mai multe versiuni de UUID-uri, fiecare cu propriul său mod de generare:
Acest instrument se concentrează pe generarea UUID-urilor de versiunea 1 și versiunea 4.
UUID-urile de versiunea 1 sunt generate folosind următoarele componente:
Formula pentru generarea unui UUID de versiunea 1 poate fi exprimată astfel:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
UUID-urile de versiunea 4 sunt generate folosind un generator de numere aleatorii criptografic puternic. Formula este pur și simplu:
1UUID = random_128_bit_number
2
Cu biți specifici setați pentru a indica versiunea (4) și varianta.
UUID-urile au numeroase aplicații în diverse domenii ale informaticii și ingineriei software:
Chei de bază de date: UUID-urile sunt adesea folosite ca chei primare în bazele de date, în special în sistemele distribuite unde mai multe noduri ar putea genera simultan înregistrări.
Sisteme distribuite: În sistemele distribuite de mari dimensiuni, UUID-urile ajută la identificarea unică a resurselor, tranzacțiilor sau evenimentelor între mai multe noduri sau centre de date.
Adresare a conținutului: UUID-urile pot fi folosite pentru a crea identificatori unici pentru conținut în sistemele de stocare adresabile prin conținut.
Managementul sesiunilor: Aplicațiile web folosesc adesea UUID-uri pentru a gestiona sesiunile utilizatorilor, asigurându-se că fiecare sesiune are un identificator unic.
Identificarea dispozitivelor IoT: În aplicațiile Internet of Things (IoT), UUID-urile pot fi folosite pentru a identifica în mod unic dispozitive individuale într-o rețea.
Deși UUID-urile sunt utilizate pe scară largă, există abordări alternative pentru generarea identificatorilor unici:
ID-uri auto-incrementale: Simple și utilizate frecvent în sistemele de bază de date unice, dar nu sunt potrivite pentru medii distribuite.
ID-uri bazate pe marcă de timp: Pot fi utile pentru datele ordonate în timp, dar pot întâmpina probleme de coliziune în scenarii de înaltă concurență.
ID-uri Snowflake: Dezvoltate de Twitter, aceste ID-uri combină marca de timp și numărul lucrătorului pentru a genera ID-uri unice în sistemele distribuite.
ULID (Identificator Universal Unic Lexicografic Sortabil): O alternativă mai recentă care își propune să fie mai prietenoasă cu utilizatorul și sortabilă decât UUID-urile.
Conceptul de UUID-uri a fost introdus pentru prima dată în Sistemul de Calcul în Rețea Apollo și ulterior standardizat de Open Software Foundation (OSF) ca parte a Mediului de Calcul Distribuit (DCE) în anii 1990. Specificația inițială a fost publicată în 1997 ca ISO/IEC 11578:1996 și ulterior revizuită în 2005 ca parte a ISO/IEC 9834-8:2005.
Puncte cheie în istoria UUID-urilor:
De-a lungul timpului, UUID-urile au devenit un instrument esențial în sistemele distribuite și proiectarea bazelor de date, cu diverse implementări și adaptări în diferite limbaje de programare și platforme.
Iată exemple de generare a UUID-urilor în diferite limbaje de programare:
1import uuid
2
3## Generați un UUID de versiunea 4 (aleatoriu)
4random_uuid = uuid.uuid4()
5print(f"UUID de versiunea 4: {random_uuid}")
6
7## Generați un UUID de versiunea 1 (bazat pe timp)
8time_based_uuid = uuid.uuid1()
9print(f"UUID de versiunea 1: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Generați un UUID de versiunea 4 (aleatoriu)
4const randomUuid = uuidv4();
5console.log(`UUID de versiunea 4: ${randomUuid}`);
6
7// Generați un UUID de versiunea 1 (bazat pe timp)
8const timeBasedUuid = uuidv1();
9console.log(`UUID de versiunea 1: ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // Generați un UUID de versiunea 4 (aleatoriu)
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("UUID de versiunea 4: " + randomUuid);
8
9 // Generați un UUID de versiunea 1 (bazat pe timp)
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("UUID de versiunea 1: " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## Generați un UUID de versiunea 4 (aleatoriu)
4random_uuid = SecureRandom.uuid
5puts "UUID de versiunea 4: #{random_uuid}"
6
7## Ruby nu are o metodă încorporată pentru UUID-uri de versiunea 1
8## Ar trebui să folosiți o gemă precum 'uuidtools' pentru asta
9
1<?php
2// Generați un UUID de versiunea 4 (aleatoriu)
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 de versiunea 4: " . $randomUuid . "\n";
11
12// PHP nu are o metodă încorporată pentru UUID-uri de versiunea 1
13// Ar trebui să folosiți o bibliotecă precum 'ramsey/uuid' pentru asta
14?>
15
Descoperiți mai multe instrumente care ar putea fi utile pentru fluxul dvs. de lucru