Generatore di UUID

Aggiungi al sito web Metainformazione

Altri strumenti

Genera UUID/GUID

Genera UUID/GUID

L'identificatore univoco universale (UUID), noto anche come identificatore univoco globale (GUID), è stato ampiamente utilizzato nei sistemi informatici.

È un codice a 128 bit che viene generato dal sistema in base a variabili e costanti: ora corrente, indirizzo MAC, hash SHA-1, spazio dei nomi MD5. Il risultato finale della generazione di un UUID, visualizzato come codice alfanumerico di 32 caratteri separati da trattini, può sembrare arbitrario, ma in realtà è il risultato di calcoli complessi. Pertanto, un computer non "inventa" un codice, ma lo forma da quantità tecniche specifiche che sono rilevanti in un dato momento.

La probabilità che lo stesso UUID venga generato su due computer diversi in momenti diversi tende a zero, il che rende possibile utilizzare i codici risultanti per l'identificazione dei dati puntuali/locali senza riferimento al centro di coordinamento. Oggi, UUID/GUID è onnipresente nelle reti sia online che offline e funziona efficacemente non solo nello spazio Internet globale, ma anche nei sistemi informatici autonomi.

Cronologia UUID

I codici UUID a 128 bit sono stati utilizzati per la prima volta dalla società americana Apollo Computer negli anni '80. Erano basati sui codici a 64 bit più semplici utilizzati in Domain/OS e trovarono un uso diffuso nell'ambiente informatico Open Software Foundation.

Con l'avvento delle prime piattaforme Windows, l'identificatore univoco globale è stato generalizzato e standardizzato. Microsoft ha adottato il design DCE di Apollo Computer e ha registrato lo spazio dei nomi URN in RFC 4122. Nel 2005, quest'ultimo è stato proposto come nuovo standard dall'IETF e l'UUID è stato standardizzato all'interno dell'ITU.

All'inizio del 2002, sono stati identificati problemi di prestazioni del sistema quando si utilizzavano gli UUID come chiavi primarie nei database locali. Questi sono stati corretti nella versione 4 aggiungendo un suffisso non casuale basato sull'ora di sistema del computer. Il cosiddetto approccio COMB (Combined GUID Time Identifier) ​​ha aumentato i rischi di duplicazione del codice, ma allo stesso tempo ha migliorato significativamente le prestazioni quando si lavora con Microsoft SQL Server.

Con lo sviluppo delle tecnologie informatiche, l'identificatore univoco universale ha cessato di essere uno strumento tecnico altamente specializzato e oggi tutti possono utilizzarlo. La probabilità di ripetizione dei codici generati non è uguale a zero, ma tende ad essa, e qualsiasi informazione digitale può essere identificata da essi, dopodiché possono essere combinati in singoli array di dati con rischi minimi di ripetizione.

Vantaggi UUID

I generatori di codici univoci globali non richiedono la riconciliazione/sincronizzazione centralizzata dei dati e sono disponibili gratuitamente per tutti gli utenti. I principali vantaggi dell'UUID includono:

  • Rischi minimi di "collisione" (ripetizione) dei codici. Nonostante il loro uso massiccio, la probabilità di ripetizione tende a zero.
  • Possibilità di unire diversi array di dati utilizzando gli UUID come chiavi primarie (uniche).
  • Distribuzione semplificata dei dati su più server dispersi.
  • Possibilità di generare codici offline.

I codici identificativi univoci, scritti nel formato xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, consentono a sistemi dispersi di riconoscere informazioni senza coordinamento da un unico data center: con una probabilità di errori/ripetizioni quasi nulla. Questa caratteristica, insieme alla facilità d'uso e ai piccoli requisiti per le prestazioni del computer, rende l'UUID richiesto e indispensabile in un'ampia varietà di settori IT e sistemi di elaborazione autonomi.

Identificatore univoco universale

Identificatore univoco universale

L'UUID può generare codici utilizzando diversi algoritmi e variabili/valori costanti.

Esistono 5 versioni dell'identificatore in totale, utilizzando la data/ora di sistema e gli indirizzi MAC, i protocolli di sicurezza DCE, l'hash MD5, l'hash SHA-1 e lo spazio dei nomi quando generati.

In tutti i casi, il risultato finale viene visualizzato nel formato xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (un numero in notazione esadecimale, composto da lettere latine minuscole e numeri, e diviso da trattini in cinque blocchi: 8-4 -4-4- 12), M sta per versione, N sta per variante UUID.

Pertanto, il sistema utilizza 36 caratteri alla volta (26 lettere e 10 numeri), quindi la probabilità di ripetere codici a 32 cifre tende a zero, nonostante siano generati quotidianamente da milioni di utenti in tutto il mondo.

Versioni UUID

Versione 1

La prima versione dell'identificatore univoco, durante la generazione del codice, si basa sull'indirizzo MAC del computer e sulla sua ora di sistema, che cambia il suo valore numerico 1 volta al secondo. Il processo di generazione si compone di cinque fasi:

  • I 32 bit inferiori di informazioni sono presi dal tag UTC. Sono convertiti in 8 caratteri esadecimali e occupano 4 byte.
  • In media 16 bit di informazioni vengono presi dalla stessa etichetta UTC e convertiti in 4 caratteri esadecimali che occupano 2 byte.
  • I 12 bit superiori di informazioni dal tag UTC vengono presi e convertiti in altri 4 caratteri esadecimali.
  • Altri 1-3 bit cadono sulla sequenza di clock e riducono i rischi di collisioni introducendo un grado di casualità/incertezza. L'ora del sistema viene condizionatamente rallentata o posticipata, in modo che due o più identificatori che lavorano contemporaneamente sullo stesso computer non si "incrocino".
  • I restanti 6 byte sono un valore costante generato in base all'indirizzo MAC del dispositivo. Consiste di 12 caratteri esadecimali e ha una dimensione di 48 bit.

Poiché l'algoritmo della prima versione dell'UUID è indissolubilmente legato all'ora di sistema, l'uso della sequenza dell'orologio è obbligatorio. Altrimenti, i rischi di generare gli stessi codici aumentano molte volte - durante il secondo in cui il tempo di sistema "si blocca" su uno o un altro valore.

Versione 2

La seconda versione è minimamente diversa dalla prima ed è usata raramente nella pratica. Invece di una sequenza di clock, utilizza un identificatore di sistema legato ai dati dell'utente o altri valori univoci che non si ripetono su altri computer o si ripetono molto raramente. L'effetto della casualità nella seconda versione è ridotto al minimo e può essere utilizzato per migliorare la sicurezza di un ambiente informatico distribuito.

Versioni 3 e 5

Hanno molto in comune: usano nomi e nomi univoci (dallo spazio MD5) per creare codici, cioè valori non casuali. Solo la versione 3 utilizza un hash standard, mentre la versione 5 utilizza un hash SHA-1. Tali identificatori sono meno dipendenti da variabili casuali.

Versione 4

La generazione di questa versione UUID è casuale per oltre il 90%. Ha 6 bit per i valori costanti e 122 per quelli arbitrari. L'implementazione dell'algoritmo prevede che 128 bit di informazioni vengano prima generati casualmente e 6 di essi vengano sostituiti da dati di versione e variante.

Il ruolo del generatore di numeri pseudo-casuali nella quarta versione è massimo, e se ha un algoritmo troppo semplice, i rischi di ripetizioni/collisioni aumentano sensibilmente. Nonostante ciò, è la quarta versione che è di gran lunga la più comune e spesso utilizzata nella pratica.

Opzioni UUID

L'UUID univoco è stato perfezionato più volte con lo sviluppo della tecnologia informatica e oggi è presentato in diverse versioni.

Opzione 0

Progettato per funzionare con i database in formato legacy Apollo Network Computing System 1.5 1988. Questa opzione è retrocompatibile con loro e non è in conflitto con gli UUID storici NCS.

Opzioni 1 e 2

Usati per identificare blocchi e array di dati moderni, e in forma di testo canonico non differiscono l'uno dall'altro, ad eccezione dell'ordine di scrittura dei bit varianti. Quindi l'opzione 1 utilizza l'ordine dei byte big-endian e l'opzione 2 utilizza title-endian. Il primo è quello principale e il secondo è riservato per lavorare con i primi GUID di Microsoft Windows.

Opzione 3

Attualmente non in uso. È una versione riservata per uso futuro - quando le possibilità delle opzioni precedenti saranno esaurite.

La maggior parte dei sistemi codifica l'identificatore in big-endian, ma ci sono delle eccezioni. Ad esempio, il marshalling nelle librerie Microsoft COM/OLE utilizza mixed-endian durante la generazione del codice dai blocchi title-endian e big-endian. Il primo sono i primi tre componenti dell'UUID e il secondo sono gli ultimi due.