🛠️

Whiz Tools

Build • Create • Innovate

Kalkulačka pre výpočet zmáčaného obvodu kanálov

Vypočítajte zmáčaný obvod pre rôzne tvary kanálov vrátane lichobežníkov, obdĺžnikov/štvorcov a kruhových potrubí. Nevyhnutné pre aplikácie v hydraulickom inžinierstve a mechanike tekutín.

Generátor ULID

Vygenerovaný ULID:

Štruktúra ULID


Časová pečiatka (10 znakov)

Náhodnosť (16 znakov)
📚

Dokumentácia

ULID Generátor

Úvod

ULID (Universally Unique Lexicographically Sortable Identifier) je jedinečný identifikátor, ktorý kombinuje časovú pečať s náhodnými údajmi na vytvorenie 26-znakového reťazca. ULID-y sú navrhnuté tak, aby boli lexikograficky usporiadané a zároveň si zachovali vysoký stupeň jedinečnosti a náhodnosti.

Štruktúra ULID

ULID sa skladá z dvoch hlavných častí:

  1. Časová pečať (10 znakov): Prvých 10 znakov predstavuje čas v milisekundách od Unix Epoch (1970-01-01).
  2. Náhodnosť (16 znakov): Zvyšných 16 znakov je generovaných pomocou kryptograficky bezpečných náhodných údajov.

Výsledný 26-znakový reťazec je kódovaný pomocou Crockfordovej base32 abecedy (0-9 a A-Z, s výnimkou I, L, O a U).

Formula

ULID sa generuje pomocou nasledujúcich krokov:

  1. Vygenerujte 48-bitovú časovú pečať (milisekundy od Unix Epoch).
  2. Vygenerujte 80 bitov kryptograficky bezpečných náhodných údajov.
  3. Kódujte kombinovaných 128 bitov pomocou Crockfordovej base32 kódovania.

Výpočet

Generátor ULID vykonáva nasledujúce kroky:

  1. Získajte aktuálny čas v milisekundách.
  2. Vygenerujte 10 náhodných bajtov (80 bitov) pomocou kryptograficky bezpečného generátora náhodných čísel.
  3. Kombinujte časovú pečať a náhodné údaje do 128-bitového celého čísla.
  4. Kódujte 128-bitové celé číslo pomocou Crockfordovej base32 kódovania.

Prípady použitia

ULID-y sú užitočné v rôznych scenároch, vrátane:

  1. Kľúče databázy: ULID-y môžu byť použité ako jedinečné identifikátory pre záznamy v databáze, čím sa zabezpečí jedinečnosť a usporiadateľnosť.
  2. Distribuované systémy: V distribuovaných prostrediach môžu byť ULID-y generované bez koordinácie medzi uzlami.
  3. Zaznamenávanie a sledovanie: ULID-y môžu byť použité na označovanie záznamov alebo sledovanie udalostí, pričom poskytujú usporiadateľný a jedinečný identifikátor.
  4. ID priateľské k URL: ULID-y sú bezpečné pre URL a môžu byť použité vo webových aplikáciách ako identifikátory v URL.

Alternatívy

Aj keď sú ULID-y všestranné, existujú aj iné systémy jedinečných identifikátorov, ktoré treba zvážiť:

  1. UUID (Universally Unique Identifier): 128-bitový identifikátor, ktorý neobsahuje komponentu časovej pečate.
  2. KSUID (K-Sortable Unique IDentifier): Podobné ULID, ale s iným kódovaním časovej pečate.
  3. Snowflake ID: Systém generovania jedinečných ID od Twitteru, ktorý obsahuje časovú pečať a ID pracovníka.

História

ULID-y boli predstavené v roku 2016 Alizainom Feerastom ako alternatíva k UUID. Boli navrhnuté tak, aby riešili niektoré obmedzenia UUID, najmä pokiaľ ide o usporiadateľnosť a čitateľnosť. Špecifikácia ULID zostala stabilná od svojho zavedenia, pričom rôzne implementácie sú k dispozícii v rôznych programovacích jazykoch.

Príklady

Tu sú niektoré kódové príklady na generovanie ULID v rôznych programovacích jazykoch:

1// Implementácia v JavaScripte
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

Tieto príklady demonštrujú, ako generovať ULID-y v JavaScripte, Pythone a Jave. Môžete tieto funkcie prispôsobiť svojim konkrétnym potrebám alebo ich integrovať do väčších systémov, ktoré vyžadujú jedinečné identifikátory.

Odkazy

  1. "ULID Špecifikácia." GitHub, https://github.com/ulid/spec. Prístup 2. augusta 2024.
  2. "Crockfordova base32 kódovanie." Base32 Kódovanie, http://www.crockford.com/base32.html. Prístup 2. augusta 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Prístup 2. augusta 2024.