🛠️

Whiz Tools

Build • Create • Innovate

Calcolatore del Perimetro Bagnato per Canali e Tubazioni

Calcola il perimetro bagnato per varie forme di canali, inclusi trapezi, rettangoli/quadrati e tubi circolari. Essenziale per applicazioni di ingegneria idraulica e meccanica dei fluidi.

Generatore ULID

ULID generato:

Struttura ULID


Timestamp (10 caratteri)

CasualitĂ  (16 caratteri)
📚

Documentazione

Generatore ULID

Introduzione

Un ULID (Identificatore Universale Unico Lessicograficamente Ordinabile) è un identificatore unico che combina un timestamp con dati casuali per creare una stringa di 26 caratteri. Gli ULID sono progettati per essere ordinabili lessicograficamente mantenendo un alto grado di unicità e casualità.

Struttura di un ULID

Un ULID è composto da due parti principali:

  1. Timestamp (10 caratteri): I primi 10 caratteri rappresentano il tempo in millisecondi dall'Epoca Unix (1970-01-01).
  2. Casuale (16 caratteri): I restanti 16 caratteri sono generati utilizzando dati casuali crittograficamente sicuri.

La stringa risultante di 26 caratteri è codificata utilizzando l'alfabeto base32 di Crockford (0-9 e A-Z, escludendo I, L, O e U).

Formula

L'ULID è generato utilizzando i seguenti passaggi:

  1. Generare un timestamp a 48 bit (millisecondi dall'Epoca Unix).
  2. Generare 80 bit di dati casuali crittograficamente sicuri.
  3. Codificare i 128 bit combinati utilizzando la codifica base32 di Crockford.

Calcolo

Il generatore ULID esegue i seguenti passaggi:

  1. Ottenere il timestamp attuale in millisecondi.
  2. Generare 10 byte casuali (80 bit) utilizzando un generatore di numeri casuali crittograficamente sicuro.
  3. Combinare il timestamp e i dati casuali in un intero a 128 bit.
  4. Codificare l'intero a 128 bit utilizzando la codifica base32 di Crockford.

Casi d'uso

Gli ULID sono utili in vari scenari, tra cui:

  1. Chiavi di database: Gli ULID possono essere utilizzati come identificatori unici per i record di database, garantendo unicitĂ  e ordinabilitĂ .
  2. Sistemi distribuiti: Negli ambienti distribuiti, gli ULID possono essere generati senza coordinamento tra i nodi.
  3. Logging e tracciamento: Gli ULID possono essere utilizzati per contrassegnare le voci di log o tracciare eventi, fornendo un identificatore unico e ordinabile.
  4. ID amichevoli per URL: Gli ULID sono sicuri per gli URL e possono essere utilizzati nelle applicazioni web come identificatori negli URL.

Alternative

Sebbene gli ULID siano versatili, ci sono altri sistemi di identificazione unica da considerare:

  1. UUID (Identificatore Universale Unico): Un identificatore a 128 bit che non include un componente timestamp.
  2. KSUID (K-Sortable Unique IDentifier): Simile a ULID ma con una codifica del timestamp diversa.
  3. Snowflake ID: Il sistema di generazione di ID unici distribuiti di Twitter, che include un timestamp e un ID del lavoratore.

Storia

Gli ULID sono stati introdotti nel 2016 da Alizain Feerasta come alternativa agli UUID. Sono stati progettati per affrontare alcune limitazioni degli UUID, in particolare in termini di ordinabilità e leggibilità. La specifica ULID è rimasta stabile dalla sua introduzione, con varie implementazioni disponibili in diversi linguaggi di programmazione.

Esempi

Ecco alcuni esempi di codice per generare ULID in diversi linguaggi di programmazione:

1// Implementazione JavaScript
2function generateULID() {
3  const timestamp = Date.now().toString(36).padStart(10, '0');
4  const randomness = crypto.getRandomValues(new Uint8Array(16))
5    .reduce((acc, byte) => acc + byte.toString(36).padStart(2, '0'), '');
6  return (timestamp + randomness).toUpperCase();
7}
8
9console.log(generateULID());
10

Questi esempi dimostrano come generare ULID in JavaScript, Python e Java. Puoi adattare queste funzioni alle tue esigenze specifiche o integrarle in sistemi piĂą ampi che richiedono identificatori unici.

Riferimenti

  1. "Specifiche ULID." GitHub, https://github.com/ulid/spec. Accesso 2 Ago. 2024.
  2. "Codifica Base32 di Crockford." Codifica Base32, http://www.crockford.com/base32.html. Accesso 2 Ago. 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Accesso 2 Ago. 2024.