🛠️

Whiz Tools

Build • Create • Innovate

Калкулатор за мокър периметър на канали и тръби

Изчислете мокрия периметър за различни форми на канали, включително трапеции, правоъгълници/квадрати и кръгли тръби. Необходимо за хидравлично инженерство и приложения в механиката на флуидите.

Генератор на ULID

Генериран ULID:

Структура на ULID


Времеви печат (10 символа)

Случайност (16 символа)
📚

Документация

ULID Генератор

Въведение

ULID (Универсален Уникален Лексикографски Сортиран Идентификатор) е уникален идентификатор, който комбинира времеви печат с произволни данни, за да създаде низ от 26 символа. ULID-ите са проектирани да бъдат лексикографски сортирани, като същевременно поддържат висока степен на уникалност и произволност.

Структура на ULID

ULID се състои от две основни части:

  1. Времеви печат (10 символа): Първите 10 символа представляват времето в милисекунди от Unix Epoch (1970-01-01).
  2. Произволност (16 символа): Останалите 16 символа се генерират с помощта на криптографски сигурни произволни данни.

Полученият 26-символен низ е кодирани с помощта на базовата32 азбука на Крокфорд (0-9 и A-Z, с изключение на I, L, O и U).

Формула

ULID се генерира, като се следват следните стъпки:

  1. Генерирайте 48-битов времеви печат (милисекунди от Unix Epoch).
  2. Генерирайте 80 бита криптографски сигурни произволни данни.
  3. Кодирайте комбинираните 128 бита с помощта на базовата32 кодировка на Крокфорд.

Изчисление

Генераторът на ULID извършва следните стъпки:

  1. Вземете текущия времеви печат в милисекунди.
  2. Генерирайте 10 произволни байта (80 бита) с помощта на криптографски сигурен генератор на случайни числа.
  3. Комбинирайте времевия печат и произволните данни в 128-битов цяло число.
  4. Кодирайте 128-битовото цяло число с помощта на базовата32 кодировка на Крокфорд.

Приложения

ULID-ите са полезни в различни сценарии, включително:

  1. Ключове за база данни: ULID-ите могат да се използват като уникални идентификатори за записи в базата данни, осигурявайки уникалност и сортиране.
  2. Разпределени системи: В разпределени среди, ULID-ите могат да се генерират без координация между възлите.
  3. Логване и проследяване: ULID-ите могат да се използват за маркиране на записи в логовете или проследяване на събития, предоставяйки сортиран и уникален идентификатор.
  4. Идентификатори, безопасни за URL: ULID-ите са безопасни за URL и могат да се използват в уеб приложения като идентификатори в URL адреси.

Алтернативи

Докато ULID-ите са многофункционални, има и други системи за уникални идентификатори, които да се разгледат:

  1. UUID (Универсален Уникален Идентификатор): 128-битов идентификатор, който не включва компонент от времеви печат.
  2. KSUID (K-Сортиран Уникален Идентификатор): Подобен на ULID, но с различно кодиране на времевия печат.
  3. Snowflake ID: Системата за разпределено генериране на уникални идентификатори на Twitter, която включва времеви печат и идентификатор на работника.

История

ULID-ите бяха въведени през 2016 г. от Ализайн Феераста като алтернатива на UUID-ите. Те бяха проектирани да адресират някои ограничения на UUID-ите, особено по отношение на сортирането и четимостта. Спецификацията на ULID е останала стабилна от нейното въвеждане, като различни реализации са налични на различни програмни езици.

Примери

Ето някои примери за код за генериране на ULID в различни програмни езици:

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

Тези примери демонстрират как да генерирате ULID в JavaScript, Python и Java. Можете да адаптирате тези функции според вашите специфични нужди или да ги интегрирате в по-големи системи, изискващи уникални идентификатори.

Референции

  1. "ULID Спецификация." GitHub, https://github.com/ulid/spec. Достъпно на 2 авг. 2024.
  2. "Кодиране с базата32 на Крокфорд." Кодиране с базата32, http://www.crockford.com/base32.html. Достъпно на 2 авг. 2024.
  3. "UUID срещу ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Достъпно на 2 авг. 2024.
🔗

Свързани инструменти

Открийте още инструменти, които могат да бъдат полезни за вашия работен процес