🛠️

Whiz Tools

Build • Create • Innovate

Vått Perimeter Kalkulator for Hydraulisk Ingeniørkunst

Beregn den våte perimeteren for ulike kanalfasonger inkludert trapeser, rektangler/kvadrater og sirkulære rør. Essensielt for hydraulisk ingeniørkunst og væskemekanikk.

ULID-generator

Generert ULID:

ULID-struktur


Tidsstempel (10 tegn)

Tilfeldighet (16 tegn)
📚

Dokumentasjon

ULID Generator

Introduksjon

En ULID (Universally Unique Lexicographically Sortable Identifier) er en unik identifikator som kombinerer et tidsstempel med tilfeldige data for å lage en 26-tegns streng. ULIDs er designet for å være leksikografisk sorterbare samtidig som de opprettholder en høy grad av unikhet og tilfeldighet.

Struktur av en ULID

En ULID består av to hoveddeler:

  1. Tidsstempel (10 tegn): De første 10 tegnene representerer tiden i millisekunder siden Unix-epoken (1970-01-01).
  2. Tilfeldighet (16 tegn): De resterende 16 tegnene genereres ved hjelp av kryptografisk sikre tilfeldige data.

Den resulterende 26-tegns strengen er kodet ved hjelp av Crockfords base32-alfabet (0-9 og A-Z, unntatt I, L, O og U).

Formel

ULID-en genereres ved å bruke følgende trinn:

  1. Generer et 48-bits tidsstempel (millisekunder siden Unix-epoken).
  2. Generer 80 bits med kryptografisk sikre tilfeldige data.
  3. Kod den kombinerte 128-bits verdien ved hjelp av Crockfords base32-koding.

Beregning

ULID-generatoren utfører følgende trinn:

  1. Hent det nåværende tidsstempelet i millisekunder.
  2. Generer 10 tilfeldige bytes (80 bits) ved hjelp av en kryptografisk sikker tilfeldig tallgenerator.
  3. Kombiner tidsstempelet og tilfeldige data til en 128-bits heltall.
  4. Kod den 128-bits heltallverdien ved hjelp av Crockfords base32-koding.

Bruksområder

ULIDs er nyttige i ulike scenarier, inkludert:

  1. Databasesøkler: ULIDs kan brukes som unike identifikatorer for databaseposter, og sikrer unikhet og sortering.
  2. Distribuerte systemer: I distribuerte miljøer kan ULIDs genereres uten koordinering mellom noder.
  3. Logging og sporing: ULIDs kan brukes til å merke loggoppføringer eller spore hendelser, og gir en sorterbar og unik identifikator.
  4. URL-vennlige ID-er: ULIDs er URL-sikre og kan brukes i webapplikasjoner som identifikatorer i URL-er.

Alternativer

Selv om ULIDs er allsidige, finnes det andre unike identifikatorsystemer å vurdere:

  1. UUID (Universally Unique Identifier): En 128-bits identifikator som ikke inkluderer et tidsstempel.
  2. KSUID (K-Sortable Unique IDentifier): Ligner på ULID, men med en annen tidsstempel-koding.
  3. Snowflake ID: Twitters distribuerte unike ID-genereringssystem, som inkluderer et tidsstempel og arbeidstaker-ID.

Historie

ULIDs ble introdusert i 2016 av Alizain Feerasta som et alternativ til UUID-er. De ble designet for å adressere noen begrensninger ved UUID-er, spesielt når det gjelder sortering og lesbarhet. ULID-spesifikasjonen har vært stabil siden introduksjonen, med ulike implementeringer tilgjengelig i forskjellige programmeringsspråk.

Eksempler

Her er noen kodeeksempler for å generere ULIDs i forskjellige programmeringsspråk:

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 eksemplene viser hvordan man genererer ULIDs i JavaScript, Python og Java. Du kan tilpasse disse funksjonene til dine spesifikke behov eller integrere dem i større systemer som krever unike identifikatorer.

Referanser

  1. "ULID-spesifikasjon." GitHub, https://github.com/ulid/spec. Hentet 2. aug. 2024.
  2. "Crockfords base32-koding." Base32-koding, http://www.crockford.com/base32.html. Hentet 2. aug. 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Hentet 2. aug. 2024.