🛠️

Whiz Tools

Build • Create • Innovate

Vådomkredskalkulator til hydraulisk ingeniørarbejde

Beregn vådomkredsen for forskellige kanalformer, herunder trapezer, rektangler/firkantede og cirkulære rør. Væsentlig for hydraulisk ingeniørarbejde og fluidmekanik applikationer.

ULID-generator

Genereret ULID:

ULID-struktur


Tidsstempel (10 tegn)

Tilfældighed (16 tegn)
📚

Dokumentation

ULID Generator

Introduktion

En ULID (Universally Unique Lexicographically Sortable Identifier) er en unik identifikator, der kombinerer et tidsstempel med tilfældige data for at skabe en 26-tegns streng. ULIDs er designet til at være leksikografisk sorterbare, samtidig med at de opretholder en høj grad af unikhed og tilfældighed.

Struktur af en ULID

En ULID består af to hoveddele:

  1. Tidsstempel (10 tegn): De første 10 tegn repræsenterer tiden i millisekunder siden Unix Epoch (1970-01-01).
  2. Tilfældighed (16 tegn): De resterende 16 tegn genereres ved hjælp af kryptografisk sikre tilfældige data.

Den resulterende 26-tegns streng er kodet ved hjælp af Crockford's base32 alfabet (0-9 og A-Z, undtagen I, L, O og U).

Formel

ULID'en genereres ved hjælp af følgende trin:

  1. Generer et 48-bit tidsstempel (millisekunder siden Unix Epoch).
  2. Generer 80 bits af kryptografisk sikre tilfældige data.
  3. Kod den kombinerede 128 bits ved hjælp af Crockford's base32 kodning.

Beregning

ULID-generatoren udfører følgende trin:

  1. Få det aktuelle tidsstempel i millisekunder.
  2. Generer 10 tilfældige bytes (80 bits) ved hjælp af en kryptografisk sikker tilfældig talgenerator.
  3. Kombiner tidsstemplet og de tilfældige data til et 128-bit heltal.
  4. Kod det 128-bit heltal ved hjælp af Crockford's base32 kodning.

Anvendelsesområder

ULIDs er nyttige i forskellige scenarier, herunder:

  1. Database nøgler: ULIDs kan bruges som unikke identifikatorer for databaseposter, hvilket sikrer unikhed og sortering.
  2. Distribuerede systemer: I distribuerede miljøer kan ULIDs genereres uden koordinering mellem noder.
  3. Logging og sporing: ULIDs kan bruges til at tagge logposter eller spore begivenheder, hvilket giver en sorterbar og unik identifikator.
  4. URL-venlige ID'er: ULIDs er URL-sikre og kan bruges i webapplikationer som identifikatorer i URL'er.

Alternativer

Selvom ULIDs er alsidige, er der andre unikke identifikatorsystemer at overveje:

  1. UUID (Universally Unique Identifier): En 128-bit identifikator, der ikke inkluderer et tidsstempel.
  2. KSUID (K-Sortable Unique IDentifier): Ligner ULID, men med en anden tidsstempel kodning.
  3. Snowflake ID: Twitters distribuerede unikke ID-genereringssystem, som inkluderer et tidsstempel og en worker ID.

Historie

ULIDs blev introduceret i 2016 af Alizain Feerasta som et alternativ til UUID'er. De blev designet til at adressere nogle af begrænsningerne ved UUID'er, især med hensyn til sortering og læsbarhed. ULID-specifikationen har været stabil siden dens introduktion, med forskellige implementeringer tilgængelige i forskellige programmeringssprog.

Eksempler

Her er nogle kodeeksempler til at generere ULIDs i forskellige programmeringssprog:

1// JavaScript implementering
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

Disse eksempler demonstrerer, hvordan man genererer ULIDs i JavaScript, Python og Java. Du kan tilpasse disse funktioner til dine specifikke behov eller integrere dem i større systemer, der kræver unikke identifikatorer.

Referencer

  1. "ULID Specification." GitHub, https://github.com/ulid/spec. Tilgået 2. aug. 2024.
  2. "Crockford's Base32 Encoding." Base32 Encoding, http://www.crockford.com/base32.html. Tilgået 2. aug. 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Tilgået 2. aug. 2024.