🛠️

Whiz Tools

Build • Create • Innovate

Nedvesített Kerület Kalkulátor - Csatornaformák Számítása

Számítsa ki a nedvesített kerületet különböző csatornaformákhoz, beleértve a trapézokat, téglalapokat/négyzeteket és kör alakú csöveket. Alapvető a hidraulikai mérnöki és folyadékmechanikai alkalmazásokhoz.

ULID Generátor

Generált ULID:

ULID Struktúra


Időbélyeg (10 karakter)

Véletlenszerűség (16 karakter)
📚

Dokumentáció

ULID Generátor

Bevezetés

A ULID (Universally Unique Lexicographically Sortable Identifier) egy egyedi azonosító, amely egy időbélyeget kombinál véletlenszerű adatokkal, hogy létrehozzon egy 26 karakterből álló karakterláncot. A ULID-ok úgy lettek tervezve, hogy lexikográfiailag rendezhetőek legyenek, miközben magas fokú egyediséget és véletlenszerűséget biztosítanak.

A ULID szerkezete

A ULID két fő részből áll:

  1. Időbélyeg (10 karakter): Az első 10 karakter az időt képviseli, amely a Unix Epoch óta eltelt milliszekundumok számát jelenti (1970-01-01).
  2. Véletlenszerűség (16 karakter): A fennmaradó 16 karaktert kriptográfiailag biztonságos véletlenszám-generátorral állítanak elő.

Az eredményül kapott 26 karakterből álló karakterlánc a Crockford-féle base32 ábécé (0-9 és A-Z, kivéve I, L, O és U) használatával van kódolva.

Képlet

A ULID a következő lépések végrehajtásával jön létre:

  1. Generálj egy 48 bites időbélyeget (milliszekundumok a Unix Epoch óta).
  2. Generálj 80 bit kriptográfiailag biztonságos véletlenszámot.
  3. Kódold a kombinált 128 bitet a Crockford-féle base32 kódolással.

Számítás

A ULID generátor a következő lépéseket hajtja végre:

  1. Szerezd meg a jelenlegi időbélyeget milliszekundumban.
  2. Generálj 10 véletlen bájtot (80 bit) kriptográfiailag biztonságos véletlenszám-generátor használatával.
  3. Kombináld az időbélyeget és a véletlenszerű adatokat egy 128 bites egész számmá.
  4. Kódold a 128 bites egész számot a Crockford-féle base32 kódolással.

Felhasználási esetek

A ULID-ok hasznosak különböző forgatókönyvekben, beleértve:

  1. Adatbázis kulcsok: A ULID-ok egyedi azonosítóként használhatók az adatbázis rekordok számára, biztosítva az egyediséget és a rendezhetőséget.
  2. Elosztott rendszerek: Elosztott környezetekben a ULID-ok koordináció nélkül generálhatók a csomópontok között.
  3. Naplózás és nyomozás: A ULID-ok felhasználhatók a naplóbejegyzések vagy események megjelölésére, biztosítva egy rendezhető és egyedi azonosítót.
  4. URL-barát azonosítók: A ULID-ok URL-biztonságosak és használhatók webalkalmazásokban az URL-ek azonosítóiként.

Alternatívák

Bár a ULID-ok sokoldalúak, más egyedi azonosító rendszereket is érdemes figyelembe venni:

  1. UUID (Universally Unique Identifier): Egy 128 bites azonosító, amely nem tartalmaz időbélyeg komponenset.
  2. KSUID (K-Sortable Unique IDentifier): Hasonló a ULID-hoz, de más időbélyeg kódolást használ.
  3. Snowflake ID: A Twitter elosztott egyedi azonosító-generáló rendszere, amely időbélyeget és munkásazonosítót tartalmaz.

Történelem

A ULID-okat 2016-ban vezették be Alizain Feerasta által, mint alternatívát a UUID-okhoz. Azért tervezték őket, hogy kezeljék a UUID-ok néhány korlátozását, különösen a rendezhetőség és olvashatóság terén. A ULID specifikációja azóta stabil maradt, különböző programozási nyelvekben elérhető implementációkkal.

Példák

Íme néhány kód példa ULID-ok generálására különböző programozási nyelvekben:

1// JavaScript implementáció
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

Ezek a példák bemutatják, hogyan lehet ULID-okat generálni JavaScript, Python és Java nyelveken. Ezeket a funkciókat az Ön specifikus igényeihez igazíthatja, vagy integrálhatja őket nagyobb rendszerekbe, amelyek egyedi azonosítókra van szükségük.

Hivatkozások

  1. "ULID Specification." GitHub, https://github.com/ulid/spec. Hozzáférés: 2024. augusztus 2.
  2. "Crockford's Base32 Encoding." Base32 Kódolás, http://www.crockford.com/base32.html. Hozzáférés: 2024. augusztus 2.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Hozzáférés: 2024. augusztus 2.