🛠️

Whiz Tools

Build • Create • Innovate

Generatore di Identificatori Unici Ordinabili KSUID

Genera Identificatori Unici Ordinabili K (KSUID) per l'uso in sistemi distribuiti, database e applicazioni che richiedono chiavi uniche e ordinabili nel tempo. I KSUID combinano un timestamp con dati casuali per creare identificatori resistenti alle collisioni e ordinabili.

Generatore KSUID

📚

Documentazione

Generatore KSUID

Introduzione

KSUID (K-Sortable Unique IDentifier) è un formato di identificatore unico che offre diversi vantaggi rispetto ai tradizionali UUID (Universally Unique Identifier) e ad altri sistemi di identificazione. Questo strumento consente di generare KSUID in modo rapido e semplice.

Che cos'è un KSUID?

Un KSUID è un identificatore ordinabile di 20 byte che consiste in:

  1. Un timestamp a 32 bit (4 byte)
  2. 16 byte di casualità

Quando rappresentato come stringa, un KSUID è codificato in base62 ed è lungo 27 caratteri.

Struttura di un KSUID

La struttura di un KSUID può essere suddivisa come segue:

  1. Timestamp (4 byte): Questo rappresenta il numero di secondi dall'epoca Unix (1 gennaio 1970, alle 00:00 UTC). Il timestamp consente ai KSUID di essere ordinabili in base al tempo di generazione.

  2. Componente Casuale (16 byte): Questo è un numero casuale crittograficamente sicuro che garantisce l'unicità anche quando più KSUID vengono generati nella stessa seconda.

  3. Codifica Base62: I 20 byte combinati (timestamp + casualità) vengono quindi codificati utilizzando base62 (A-Z, a-z, 0-9) per produrre la stringa finale di 27 caratteri.

Formula KSUID

Un KSUID può essere rappresentato matematicamente come:

KSUID=Base62(TR)KSUID = Base62(T || R)

Dove:

  • TT è il timestamp a 32 bit
  • RR è il componente casuale a 128 bit
  • || denota concatenazione

Il timestamp TT è calcolato come:

T = \text{floor}(\text{current_time} - \text{KSUID_epoch})

Dove KSUID_epoch è 1400000000 (2014-05-13T16:53:20Z).

Diagramma della Struttura KSUID

Timestamp (4 byte) Componente Casuale (16 byte)

Casi d'uso per i KSUID

I KSUID sono particolarmente utili nei seguenti scenari:

  1. Sistemi Distribuiti: Quando è necessario identificatori unici su più server o servizi senza coordinazione.

  2. Dati Ordinabili per Tempo: Quando si desidera ordinare i dati in base al tempo di creazione senza memorizzare un timestamp separato.

  3. Chiavi di Database: Come chiavi primarie nei database, specialmente nei database distribuiti dove gli interi auto-incrementanti non sono adatti.

  4. Identificatori Sicuri per URL: Per creare identificatori brevi, unici e sicuri per URL per risorse nelle applicazioni web.

  5. Correlazione dei Log: Per correlare le voci di log tra diversi servizi in un'architettura a microservizi.

Vantaggi dei KSUID

I KSUID offrono diversi vantaggi rispetto ad altri sistemi di identificazione:

  1. Ordinabilità: A differenza degli UUID, i KSUID possono essere ordinati cronologicamente, il che è utile per l'indicizzazione dei database e l'analisi dei log.

  2. Nessuna Coordinazione Necessaria: A differenza degli ID auto-incrementanti, i KSUID possono essere generati indipendentemente da diversi server senza rischiare collisioni.

  3. Rappresentazione Compatta: Con 27 caratteri, i KSUID sono più compatti degli UUID quando rappresentati come stringhe.

  4. Timestamp Incorporato: Il timestamp incorporato consente un ordinamento e un filtraggio basati sul tempo senza la necessità di un campo timestamp separato.

  5. Sicuri per URL: La codifica base62 rende i KSUID sicuri per l'uso negli URL senza alcuna codifica aggiuntiva.

  6. Probabilità Ridotta di Collisione: Il componente casuale di 16 byte rende le collisioni estremamente improbabili, anche a tassi di generazione elevati.

Come Utilizzare Questo Generatore

  1. Inserisci eventuali parametri aggiuntivi se necessario (ad esempio, timestamp personalizzato).
  2. Fai clic sul pulsante "Genera KSUID" per creare un nuovo KSUID.
  3. Il KSUID generato verrà visualizzato nel campo di output.
  4. Puoi generare più KSUID ripetendo i passaggi 1-3.
  5. Usa il pulsante "Copia" accanto a ciascun KSUID per copiarlo negli appunti.
  6. Facoltativamente, utilizza la funzione "Esporta" per scaricare un elenco di KSUID generati.

Ricorda che ogni KSUID è unico e dovrebbe essere utilizzato solo una volta. Genera un nuovo KSUID ogni volta che hai bisogno di un identificatore unico.

Esempi di Codice

Ecco esempi di generazione di KSUID in vari linguaggi di programmazione:

1## Python
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"KSUID generato: {new_id}")
6

Riferimenti

  1. Repository GitHub di KSUID di Segment: https://github.com/segmentio/ksuid
  2. "Generare buoni identificatori unici" di Peter Bourgon: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. Specifica KSUID: https://github.com/segmentio/ksuid/blob/master/README.md