Generator UUID

Adăugați pe site Metainformații

Alte unelte

Generează UUID/GUID

Generează UUID/GUID

Identificatorul unic universal (UUID), cunoscut și sub numele de Identificator unic global (GUID), a fost utilizat pe scară largă în sistemele informatice.

Este un cod de 128 de biți care este generat de sistem pe baza variabilelor și constantelor: ora curentă, adresa MAC, hash SHA-1, spațiu de nume MD5. Rezultatul final al generării unui UUID, afișat ca un cod alfanumeric de 32 de caractere, separat prin cratime, poate părea arbitrar, dar de fapt este rezultatul unor calcule complexe. Astfel, un computer nu „inventează” un cod, ci îl formează din cantități tehnice specifice care sunt relevante la un moment dat.

Probabilitatea ca același UUID să fie generat pe două computere diferite în momente diferite tinde spre zero, ceea ce face posibilă utilizarea codurilor rezultate pentru identificarea datelor punctuale/locale fără referire la centrul de coordonare. Astăzi, UUID/GUID este omniprezent atât în ​​rețelele online cât și offline și funcționează eficient nu numai în spațiul internet global, ci și în sistemele computerizate independente.

Istoricul UUID-ului

Codurile UUID de 128 de biți au fost folosite pentru prima dată de compania americană Apollo Computer în anii 1980. Acestea s-au bazat pe codurile mai simple pe 64 de biți utilizate în Domeniu/OS și au găsit o utilizare pe scară largă în mediul de calcul Open Software Foundation.

Odată cu apariția primelor platforme Windows, identificatorul unic la nivel global a fost generalizat și standardizat. Microsoft a adoptat designul DCE de la Apollo Computer și a înregistrat spațiul de nume URN în RFC 4122. În 2005, acesta din urmă a fost propus ca un nou standard de către IETF, iar UUID a fost standardizat în cadrul ITU.

La începutul anului 2002, au fost identificate probleme de performanță a sistemului la utilizarea UUID-urilor ca chei primare în bazele de date locale. Acestea au fost remediate în versiunea 4 prin adăugarea unui sufix non-aleatoriu bazat pe ora sistemului computerului. Așa-numita abordare COMB (Combined GUID Time Identifier) ​​a crescut riscurile de duplicare a codului, dar, în același timp, a îmbunătățit semnificativ performanța atunci când lucrați cu Microsoft SQL Server.

Odată cu dezvoltarea tehnologiilor IT, identificatorul unic universal a încetat să mai fie un instrument tehnic foarte specializat, iar astăzi oricine îl poate folosi. Probabilitatea de repetare a codurilor generate nu este egală cu zero, dar tinde către aceasta, iar orice informație digitală poate fi identificată de către acestea, după care pot fi combinate în matrice de date unice cu riscuri minime de repetare.

Beneficiile UUID

Generatorii de coduri unice globale nu necesită reconciliere/sincronizare centralizată a datelor și sunt disponibile gratuit pentru toți utilizatorii. Principalele avantaje ale UUID includ:

  • Riscuri minime de „coliziune” (repetare) a codurilor. În ciuda utilizării lor masive, probabilitatea de repetare tinde spre zero.
  • Posibilitatea de a uni diferite matrice de date folosind UUID-uri ca chei primare (unice).
  • Distribuire simplificată a datelor pe mai multe servere dispersate.
  • Posibilitatea de a genera coduri offline.

Codurile unice de identificare, scrise în formatul xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, permit sistemelor dispersate să recunoască informațiile fără coordonare dintr-un singur centru de date: cu o probabilitate aproape zero de erori/repetări. Această caracteristică, împreună cu ușurința de utilizare și cerințele scăzute pentru performanța computerului, face ca UUID să fie solicitat și indispensabil într-o mare varietate de industrii IT și sisteme de calcul autonome.

Identificator unic universal

Identificator unic universal

UUID-ul poate genera coduri folosind diferiți algoritmi și variabile/valori constante.

Există 5 versiuni ale identificatorului în total, care utilizează data/ora sistemului și adresele MAC, protocoalele de securitate DCE, hash MD5, hash SHA-1 și spațiu de nume atunci când sunt generate.

În toate cazurile, rezultatul final este afișat în formatul xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (un număr în notație hexazecimală, format din litere și numere latine mici și împărțit prin cratime în cinci blocuri: 8-4 -4-4- 12), M reprezintă versiunea, N reprezintă varianta UUID.

Astfel, sistemul folosește 36 de caractere odată (26 de litere și 10 numere), astfel încât probabilitatea de a repeta codurile din 32 de cifre tinde spre zero, în ciuda faptului că acestea sunt generate zilnic de milioane de utilizatori din întreaga lume.

Versiuni UUID

Versiunea 1

Prima versiune a identificatorului unic, la generarea codului, se bazează pe adresa MAC a computerului și pe ora sistemului acestuia, care își modifică valoarea numerică de 1 dată pe secundă. Procesul de generare constă din cinci etape:

  • Cei 32 de biți inferiori de informații sunt preluați din eticheta UTC. Acestea sunt convertite în 8 caractere hexazecimale și ocupă 4 octeți.
  • În medie, 16 biți de informații sunt preluați din aceeași etichetă UTC și convertiți în 4 caractere hexazecimale care ocupă 2 octeți.
  • Cei 12 biți superiori de informații din eticheta UTC sunt preluați și convertiți în încă 4 caractere hexazecimale.
  • Alți 1-3 biți cad pe secvența de ceas și reduc riscurile de coliziuni prin introducerea unui grad de aleatorie/incertitudine. Ora sistemului fie este încetinită condiționat, fie este retrasă - astfel încât doi sau mai mulți identificatori care lucrează pe același computer în același timp să nu se „încrucișeze”.
  • Cei 6 octeți rămași sunt o valoare constantă generată pe baza adresei MAC a dispozitivului. Este format din 12 caractere hexazecimale și are o dimensiune de 48 de biți.

Deoarece algoritmul primei versiuni a UUID-ului este indisolubil legat de ora sistemului, utilizarea secvenței de ceas este obligatorie. În caz contrar, riscurile de a genera aceleași coduri cresc de multe ori - în timpul celui de-al doilea când timpul sistemului „îngheață” la una sau alta valoare.

Versiunea 2

A doua versiune este puțin diferită de prima și este rar folosită în practică. În loc de o secvență de ceas, folosește un identificator de sistem legat de datele utilizatorului sau alte valori unice care nu se repetă pe alte computere sau sunt repetate foarte rar. Efectul aleatoriei în a doua versiune este minimizat și poate fi folosit pentru a îmbunătăți securitatea unui mediu de calcul distribuit.

Versiunile 3 și 5

Au multe în comun: folosesc nume și nume unice (din spațiul MD5) pentru a crea coduri, adică valori non-aleatoare. Doar versiunea 3 folosește un hash standard, în timp ce versiunea 5 folosește un hash SHA-1. Astfel de identificatori sunt mai puțin dependenți de variabile aleatorii.

Versiunea 4

Generarea acestei versiuni UUID este aleatorie în proporție de peste 90%. Are 6 biți pentru valorile constante și 122 pentru cele arbitrare. Implementarea algoritmului este că 128 de biți de informații sunt generați mai întâi aleatoriu, iar 6 dintre ei sunt înlocuiți cu date despre versiune și variantă.

Rolul generatorului de numere pseudoaleatoare în versiunea a patra este maxim, iar dacă are un algoritm prea simplu, riscurile de repetări/coliziune cresc semnificativ. În ciuda acestui fapt, este a patra versiune care este de departe cea mai comună și des folosită în practică.

Opțiuni UUID

UUID-ul unic a fost rafinat de mai multe ori pe măsură ce s-a dezvoltat tehnologia computerizată, iar astăzi este prezentat în mai multe versiuni.

Opțiunea 0

Conceput pentru a funcționa cu vechile baze de date în format Apollo Network Computing System 1.5 1988. Această opțiune este compatibilă cu acestea și nu intră în conflict cu UUID-urile istorice NCS.

Opțiunile 1 și 2

Folosite pentru a identifica blocurile și matricele de date moderne, iar sub formă de text canonic nu diferă unele de altele, cu excepția ordinii de scriere a biților variante. Deci, opțiunea 1 folosește ordinea octeților big-endian, iar opțiunea 2 folosește titlul-endian. Primul este cel principal, iar al doilea este rezervat pentru lucrul cu GUID-urile timpurii din Microsoft Windows.

Opțiunea 3

În prezent, nu este utilizat. Este o versiune rezervată pentru utilizare ulterioară - când posibilitățile opțiunilor anterioare sunt epuizate.

Majoritatea sistemelor codifică identificatorul în big-endian, dar există și excepții. De exemplu, marshaling în bibliotecile Microsoft COM/OLE utilizează mixed-endian în timp ce generează cod din blocurile title-endian și big-endian. Prima este primele trei componente ale UUID-ului, iar a doua este ultimele două.