🛠️

Whiz Tools

Build • Create • Innovate

Calculadora de Perímetre Mullat per a Canals i Tubes

Calcula el perímetre mullat per a diverses formes de canals, incloent trapezoides, rectangles/quadrats i tubs circulars. Essencial per a aplicacions d'enginyeria hidràulica i mecànica de fluids.

Generador de ULID

ULID generat:

Estructura de ULID


Timestamp (10 caràcters)

Aleatorietat (16 caràcters)
📚

Documentació

Generador de ULID

Introducció

Un ULID (Identificador Únic Lexicogràficament Ordenable Universal) és un identificador únic que combina una marca de temps amb dades aleatòries per crear una cadena de 26 caràcters. Els ULID estan dissenyats per ser ordenables lexicogràficament mentre mantenen un alt grau d'unicitat i aleatorietat.

Estructura d'un ULID

Un ULID consisteix en dues parts principals:

  1. Marca de temps (10 caràcters): Els primers 10 caràcters representen el temps en mil·lisegons des de l'Epoca Unix (1970-01-01).
  2. Aleatorietat (16 caràcters): Els 16 caràcters restants es generen mitjançant dades aleatòries segures criptogràficament.

La cadena resultant de 26 caràcters s'codifica utilitzant l'alfabet base32 de Crockford (0-9 i A-Z, excloent I, L, O i U).

Fórmula

El ULID es genera mitjançant els següents passos:

  1. Generar una marca de temps de 48 bits (mil·lisegons des de l'Epoca Unix).
  2. Generar 80 bits de dades aleatòries segures criptogràficament.
  3. Codificar els 128 bits combinats utilitzant la codificació base32 de Crockford.

Càlcul

El generador de ULID realitza els següents passos:

  1. Obtenir la marca de temps actual en mil·lisegons.
  2. Generar 10 bytes aleatoris (80 bits) mitjançant un generador de números aleatoris segurs criptogràficament.
  3. Combinar la marca de temps i les dades aleatòries en un enter de 128 bits.
  4. Codificar l'enter de 128 bits utilitzant la codificació base32 de Crockford.

Casos d'ús

Els ULID són útils en diversos escenaris, incloent:

  1. Clau de base de dades: Els ULID es poden utilitzar com a identificadors únics per a registres de base de dades, assegurant unicitat i ordenabilitat.
  2. Sistemes distribuïts: En entorns distribuïts, els ULID es poden generar sense coordinació entre nodes.
  3. Registre i traçabilitat: Els ULID es poden utilitzar per etiquetar entrades de registre o traçar esdeveniments, proporcionant un identificador únic i ordenable.
  4. IDs amigables amb URL: Els ULID són segurs per a URL i es poden utilitzar en aplicacions web com a identificadors en URLs.

Alternatives

Tot i que els ULID són versàtils, hi ha altres sistemes d'identificadors únics a considerar:

  1. UUID (Identificador Únic Universal): Un identificador de 128 bits que no inclou una component de marca de temps.
  2. KSUID (Identificador Únic K-Ordenable): Similar al ULID però amb una codificació de marca de temps diferent.
  3. Snowflake ID: El sistema de generació d'ID únics distribuïts de Twitter, que inclou una marca de temps i un ID de treballador.

Història

Els ULID es van introduir el 2016 per Alizain Feerasta com una alternativa als UUID. Estaven dissenyats per abordar algunes limitacions dels UUID, particularment en termes d'ordenabilitat i llegibilitat. L'especificació ULID ha romàs estable des de la seva introducció, amb diverses implementacions disponibles en diferents llenguatges de programació.

Exemples

Aquí hi ha alguns exemples de codi per generar ULID en diferents llenguatges de programació:

1// Implementació en JavaScript
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

Aquests exemples demostren com generar ULID en JavaScript, Python i Java. Podeu adaptar aquestes funcions a les vostres necessitats específiques o integrar-les en sistemes més grans que requereixin identificadors únics.

Referències

  1. "Especificació ULID." GitHub, https://github.com/ulid/spec. Accés 2 d'agost de 2024.
  2. "Codificació Base32 de Crockford." Codificació Base32, http://www.crockford.com/base32.html. Accés 2 d'agost de 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Accés 2 d'agost de 2024.