🛠️

Whiz Tools

Build • Create • Innovate

Kalkulator za Mokri Opseg za Različite Oblike Kanala

Izračunajte mokri opseg za različite oblike kanala uključujući trapeze, pravokutnike/kvadrate i kružne cijevi. Neophodno za primjene u hidrauličkom inženjeringu i mehanici fluida.

ULID Generator

Generirani ULID:

ULID Struktura


Vrijeme (10 znakova)

Nasumičnost (16 znakova)
📚

Dokumentacija

ULID Generator

Uvod

ULID (Univerzalni jedinstveni leksikografski sortirani identifikator) je jedinstveni identifikator koji kombinira vremensku oznaku s nasumičnim podacima kako bi stvorio niz od 26 znakova. ULID-ovi su dizajnirani da budu leksikografski sortirani dok zadržavaju visoku razinu jedinstvenosti i nasumičnosti.

Struktura ULID-a

ULID se sastoji od dva glavna dijela:

  1. Vremenska oznaka (10 znakova): Prvih 10 znakova predstavlja vrijeme u milisekundama od Unix epohe (1970-01-01).
  2. Nasumičnost (16 znakova): Preostalih 16 znakova generira se pomoću kriptografski sigurnih nasumičnih podataka.

Rezultantni niz od 26 znakova kodira se koristeći Crockfordovu base32 abecedu (0-9 i A-Z, isključujući I, L, O i U).

Formula

ULID se generira koristeći sljedeće korake:

  1. Generirajte 48-bitnu vremensku oznaku (milisekunde od Unix epohe).
  2. Generirajte 80 bitova kriptografski sigurnih nasumičnih podataka.
  3. Kodirajte kombiniranih 128 bitova koristeći Crockfordovu base32 kodiranje.

Izračun

Generator ULID-a izvodi sljedeće korake:

  1. Dobijte trenutnu vremensku oznaku u milisekundama.
  2. Generirajte 10 nasumičnih bajtova (80 bitova) koristeći kriptografski siguran generator nasumičnih brojeva.
  3. Kombinirajte vremensku oznaku i nasumične podatke u 128-bitni cijeli broj.
  4. Kodirajte 128-bitni cijeli broj koristeći Crockfordovu base32 kodiranje.

Upotreba

ULID-ovi su korisni u raznim scenarijima, uključujući:

  1. Ključevi baze podataka: ULID-ovi se mogu koristiti kao jedinstveni identifikatori za zapise u bazi podataka, osiguravajući jedinstvenost i sortiranje.
  2. Distribuirani sustavi: U distribuiranim okruženjima, ULID-ovi se mogu generirati bez koordinacije između čvorova.
  3. Zapisivanje i praćenje: ULID-ovi se mogu koristiti za označavanje unosa u logovima ili praćenje događaja, pružajući sortirani i jedinstveni identifikator.
  4. URL-prijateljski ID-ovi: ULID-ovi su sigurni za URL i mogu se koristiti u web aplikacijama kao identifikatori u URL-ovima.

Alternativa

Iako su ULID-ovi svestrani, postoje i drugi sustavi jedinstvenih identifikatora koje treba razmotriti:

  1. UUID (Univerzalni jedinstveni identifikator): 128-bitni identifikator koji ne uključuje komponentu vremenske oznake.
  2. KSUID (K-sortabilni jedinstveni identifikator): Sličan ULID-u, ali s drugačijom kodiranjem vremenske oznake.
  3. Snowflake ID: Sustav generiranja jedinstvenih ID-ova Twittera, koji uključuje vremensku oznaku i ID radnika.

Povijest

ULID-ovi su uvedeni 2016. godine od strane Alizaina Feeraste kao alternativa UUID-ima. Dizajnirani su da adresiraju neka ograničenja UUID-a, posebno u pogledu sortiranja i čitljivosti. ULID specifikacija ostala je stabilna od svog uvođenja, s raznim implementacijama dostupnim na različitim programskim jezicima.

Primjeri

Evo nekoliko primjera koda za generiranje ULID-ova na različitim programskim jezicima:

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

Ovi primjeri prikazuju kako generirati ULID-ove u JavaScriptu, Pythonu i Javi. Možete prilagoditi ove funkcije svojim specifičnim potrebama ili ih integrirati u veće sustave koji zahtijevaju jedinstvene identifikatore.

Reference

  1. "ULID Specifikacija." GitHub, https://github.com/ulid/spec. Pristupljeno 2. kolovoza 2024.
  2. "Crockfordovo Base32 Kodiranje." Base32 Kodiranje, http://www.crockford.com/base32.html. Pristupljeno 2. kolovoza 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Pristupljeno 2. kolovoza 2024.