🛠️

Whiz Tools

Build • Create • Innovate

Kostean Kehän Laskin - Hydraulitekniikan Työkalu

Laske kostea kehä eri kanavamuodoille, mukaan lukien puolisuunnikkaat, suorakulmiot/neliöt ja pyöreät putket. Välttämätön hydraulitekniikan ja virtausmekaniikan sovelluksissa.

ULID-generaattori

Generoitu ULID:

ULID-rakenne


Aikaleima (10 merkkiä)

Satunnaisuus (16 merkkiä)
📚

Dokumentaatio

ULID Generaattori

Johdanto

ULID (Universally Unique Lexicographically Sortable Identifier) on ainutlaatuinen tunniste, joka yhdistää aikaleiman satunnaisiin tietoihin luodakseen 26-merkkisen merkkijonon. ULIDit on suunniteltu olemaan leksikografisesti lajitteltavissa samalla kun ne säilyttävät korkean ainutlaatuisuuden ja satunnaisuuden.

ULIDin rakenne

ULID koostuu kahdesta pääosasta:

  1. Aikaleima (10 merkkiä): Ensimmäiset 10 merkkiä edustavat aikaa millisekunteina Unix-ajan (1970-01-01) jälkeen.
  2. Satunnaisuus (16 merkkiä): Loput 16 merkkiä generoidaan käyttäen kryptografisesti turvallista satunnaisdatan lähdettä.

Tuloksena oleva 26-merkkinen merkkijono on koodattu Crockfordin base32 -aakkostolla (0-9 ja A-Z, lukuun ottamatta I, L, O ja U).

Kaava

ULID generoidaan seuraavien vaiheiden avulla:

  1. Generoi 48-bittinen aikaleima (millisekuntia Unix-ajan jälkeen).
  2. Generoi 80 bittiä kryptografisesti turvallista satunnaisdataa.
  3. Koodaa yhdistetyt 128 bittiä Crockfordin base32 -koodauksella.

Laskenta

ULID-generaattori suorittaa seuraavat vaiheet:

  1. Hanki nykyinen aikaleima millisekunteina.
  2. Generoi 10 satunnaista tavua (80 bittiä) käyttäen kryptografisesti turvallista satunnaislukugeneraattoria.
  3. Yhdistä aikaleima ja satunnaisdatan 128-bittiseksi kokonaisluvuksi.
  4. Koodaa 128-bittinen kokonaisluku Crockfordin base32 -koodauksella.

Käyttötapaukset

ULIDit ovat hyödyllisiä erilaisissa skenaarioissa, mukaan lukien:

  1. Tietokannan avaimet: ULIDit voidaan käyttää ainutlaatuisina tunnisteina tietokantakirjauksille, varmistaen ainutlaatuisuuden ja lajittelun.
  2. Hajautetut järjestelmät: Hajautetuissa ympäristöissä ULIDit voidaan generoida ilman koordinaatiota solmujen välillä.
  3. Lokitus ja jäljitys: ULIDit voidaan käyttää lokimerkintöjen tai tapahtumien merkitsemiseen, tarjoten lajittelevan ja ainutlaatuisen tunnisteen.
  4. URL-ystävälliset tunnisteet: ULIDit ovat URL-turvallisia ja niitä voidaan käyttää verkkosovelluksissa tunnisteina URL-osoitteissa.

Vaihtoehdot

Vaikka ULIDit ovat monipuolisia, on olemassa myös muita ainutlaatuisia tunnistinjärjestelmiä, joita kannattaa harkita:

  1. UUID (Universally Unique Identifier): 128-bittinen tunniste, joka ei sisällä aikaleimaosaa.
  2. KSUID (K-Sortable Unique IDentifier): Samankaltainen kuin ULID, mutta eri aikaleiman koodauksella.
  3. Snowflake ID: Twitterin hajautettu ainutlaatuisten ID:iden generointijärjestelmä, joka sisältää aikaleiman ja työntekijätunnuksen.

Historia

ULIDit esiteltiin vuonna 2016 Alizain Feerastan toimesta vaihtoehtona UUID:ille. Ne on suunniteltu käsittelemään joitakin UUID:iden rajoituksia, erityisesti lajittelun ja luettavuuden osalta. ULID-spesifikaatio on pysynyt vakaana sen esittelyn jälkeen, ja erilaisia toteutuksia on saatavilla eri ohjelmointikielillä.

Esimerkit

Tässä on joitakin koodiesimerkkejä ULIDien generoimiseksi eri ohjelmointikielillä:

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

Nämä esimerkit osoittavat, kuinka ULIDit voidaan generoida JavaScriptissä, Pythonissa ja Javassa. Voit mukauttaa näitä toimintoja omiin tarpeisiisi tai integroida ne suurempiin järjestelmiin, jotka vaativat ainutlaatuisia tunnisteita.

Viitteet

  1. "ULID Specification." GitHub, https://github.com/ulid/spec. Viitattu 2. elokuuta 2024.
  2. "Crockfordin Base32 -koodaus." Base32-koodaus, http://www.crockford.com/base32.html. Viitattu 2. elokuuta 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Viitattu 2. elokuuta 2024.