🛠️

Whiz Tools

Build • Create • Innovate

Kalkulator za navlaženi obim kanala i cevi za vodu

Izračunajte navlaženi obim za različite oblike kanala uključujući trapeze, pravougaonike/kvadrate i kružne cevi. Neophodno za primene u hidrauličkom inženjeringu i mehanici fluida.

ULID Generator

Generisani ULID:

ULID Struktura


Vreme (10 karaktera)

Nasumičnost (16 karaktera)
📚

Dokumentacija

ULID Generator

Uvod

ULID (Univerzalno jedinstveno leksikografski sortirano identifikator) je jedinstveni identifikator koji kombinuje vremensku oznaku sa slučajnim podacima kako bi se stvorio niz od 26 karaktera. ULID-ovi su dizajnirani da budu leksikografski sortirani, dok istovremeno održavaju visok nivo jedinstvenosti i slučajnosti.

Struktura ULID-a

ULID se sastoji od dva glavna dela:

  1. Vremenska oznaka (10 karaktera): Prvih 10 karaktera predstavlja vreme u milisekundama od Unix epohe (1970-01-01).
  2. Slučajnost (16 karaktera): Preostalih 16 karaktera se generiše korišćenjem kriptografski sigurnih slučajnih podataka.

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

Formula

ULID se generiše koristeći sledeće korake:

  1. Generišite 48-bitnu vremensku oznaku (milisekunde od Unix epohe).
  2. Generišite 80 bita kriptografski sigurnih slučajnih podataka.
  3. Kodirajte kombinovanih 128 bita koristeći Krokfordovo base32 kodiranje.

Izračunavanje

Generator ULID-a izvršava sledeće korake:

  1. Dobijte trenutnu vremensku oznaku u milisekundama.
  2. Generišite 10 slučajnih bajtova (80 bita) koristeći kriptografski siguran generator slučajnih brojeva.
  3. Kombinujte vremensku oznaku i slučajne podatke u 128-bitni ceo broj.
  4. Kodirajte 128-bitni ceo broj koristeći Krokfordovo 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 sistemi: U distribuiranim okruženjima, ULID-ovi se mogu generisati bez koordinacije između čvorova.
  3. Logovanje i praćenje: ULID-ovi se mogu koristiti za označavanje log unosa 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 sistemi jedinstvenih identifikatora koje treba razmotriti:

  1. UUID (Univerzalno jedinstveni identifikator): 128-bitni identifikator koji ne uključuje komponentu vremenske oznake.
  2. KSUID (K-sortabilni jedinstveni identifikator): Sličan ULID-u, ali sa drugačijim kodiranjem vremenske oznake.
  3. Snowflake ID: Sistem generisanja distribuiranih jedinstvenih ID-ova Twitter-a, koji uključuje vremensku oznaku i ID radnika.

Istorija

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

Primeri

Evo nekoliko primera koda za generisanje ULID-ova u 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 primeri prikazuju kako generisati ULID-ove u JavaScript-u, Python-u i Javi. Možete prilagoditi ove funkcije svojim specifičnim potrebama ili ih integrisati u veće sisteme koji zahtevaju jedinstvene identifikatore.

Reference

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