🛠️

Whiz Tools

Build • Create • Innovate

Kalkulator za izračun omočenega obsega kanalov

Izračunajte omočen obseg za različne oblike kanalov, vključno s trapezi, pravokotniki/kvadrati in krožnimi cevmi. Bistveno za hidravlično inženirstvo in aplikacije za mehaniko tekočin.

ULID Generator

Generirani ULID:

Struktura ULID


Časovni žig (10 znakov)

Naključnost (16 znakov)
📚

Dokumentacija

ULID Generator

Uvod

ULID (Univerzalni unikatni lexikografsko sortiran identifikator) je unikatni identifikator, ki združuje časovni žig z naključnimi podatki, da ustvari 26-znakovno niz. ULID-i so zasnovani tako, da so lexikografsko sortirani, hkrati pa ohranjajo visoko stopnjo unikatnosti in naključnosti.

Struktura ULID-a

ULID se sestavlja iz dveh glavnih delov:

  1. Časovni žig (10 znakov): Prvih 10 znakov predstavlja čas v milisekundah od Unixove dobe (1970-01-01).
  2. Naključnost (16 znakov): Preostalih 16 znakov se generira z uporabo kriptografsko varnih naključnih podatkov.

Rezultantni 26-znakovni niz je kodiran z uporabo Crockfordovega base32 abecednega sistema (0-9 in A-Z, brez I, L, O in U).

Formula

ULID se generira z naslednjimi koraki:

  1. Generirajte 48-bitni časovni žig (milisekunde od Unixove dobe).
  2. Generirajte 80 bitov kriptografsko varnih naključnih podatkov.
  3. Kodirajte kombiniranih 128 bitov z uporabo Crockfordovega base32 kodiranja.

Izračun

Generator ULID izvaja naslednje korake:

  1. Pridobite trenutni časovni žig v milisekundah.
  2. Generirajte 10 naključnih bajtov (80 bitov) z uporabo kriptografsko varnega generatorja naključnih števil.
  3. Združite časovni žig in naključne podatke v 128-bitno celo število.
  4. Kodirajte 128-bitno celo število z uporabo Crockfordovega base32 kodiranja.

Uporabniški primeri

ULID-i so koristni v različnih scenarijih, vključno z:

  1. Ključi v podatkovnih bazah: ULID-i se lahko uporabljajo kot unikatni identifikatorji za zapise v podatkovnih bazah, kar zagotavlja unikatnost in sortabilnost.
  2. Distribuirani sistemi: V distribuiranih okoljih je mogoče ULID-e generirati brez usklajevanja med vozlišči.
  3. Beleženje in sledenje: ULID-e je mogoče uporabiti za označevanje zapisov dnevnika ali sledenje dogodkom, kar omogoča sortiran in unikatni identifikator.
  4. ID-ji prijazni URL-jem: ULID-i so varni za URL in jih je mogoče uporabiti v spletnih aplikacijah kot identifikatorje v URL-jih.

Alternativne možnosti

Čeprav so ULID-i vsestranski, obstajajo tudi drugi sistemi unikatnih identifikatorjev, ki jih je treba upoštevati:

  1. UUID (Univerzalni unikatni identifikator): 128-bitni identifikator, ki ne vključuje časovnega žiga.
  2. KSUID (K-sortabilni unikatni identifikator): Podoben ULID-u, vendar z drugačno kodiranjem časovnega žiga.
  3. Snowflake ID: Sistem generiranja distribuiranih unikatnih ID-jev Twitterja, ki vključuje časovni žig in ID delavca.

Zgodovina

ULID-e je leta 2016 uvedel Alizain Feerasta kot alternativo UUID-jem. Zasnovani so bili za reševanje nekaterih omejitev UUID-jev, zlasti glede sortabilnosti in berljivosti. Specifikacija ULID je ostala stabilna od svoje uvedbe, na voljo pa je več različnih implementacij v različnih programskih jezikih.

Primeri

Tukaj so nekateri primeri kode za generiranje ULID-ov v različnih programskih jezikih:

1// Implementacija v JavaScriptu
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

Ti primeri prikazujejo, kako generirati ULID-e v JavaScriptu, Pythonu in Javi. Te funkcije lahko prilagodite svojim specifičnim potrebam ali jih vključite v večje sisteme, ki zahtevajo unikatne identifikatorje.

Reference

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