Как можно преобразовать тип UUID в тип ULID?

Там немного документации, как преобразовать ULID в UUID, но не так много, когда вам нужно преобразовать UUID в ULID.

Я смотрю на этот генератор/конвертер UUID/ULID https://www.ulidtools.com/

но я не совсем уверен, как мне воспроизвести преобразование UUID в ULID, источник слишком запутан, чтобы я мог его понять.

Я не уверен, с чего даже начать, безопасно ли это преобразование? будет ли это гарантировать уникальное преобразование?

Это всего лишь два представления одного и того же битового шаблона. Каждый из них хранит 128 бит информации. Нет вопроса "безопасности". Зачем нужен ULID?

Tim Roberts 13.12.2022 18:28

Внешний API, который я использую, принимает только ULID для дедупликации событий.

user3621898 13.12.2022 19:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
164
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чистый метод Javascript для преобразования:

Преобразование UUID в ULID гарантирует уникальный код. ULID — это уникальные 128-битные идентификаторы, которые генерируются на основе комбинации текущей метки времени.

function convertUUIDtoULID(uuid) {
  const uuidBinary = uuid.split("-").map((hex) => parseInt(hex, 16));
  return uuidBinary
    .slice(0, 8)
    .map((byte) => byte.toString(32))
    .concat(uuidBinary.slice(8).map((byte) => byte.toString(32)))
    .join("");
}

const uuid = "454391df-b950-42ea-a2c0-92d62c215d67";
const ulid = convertUUIDtoULID(uuid);
console.info(ulid);
  • Функция принимает строку формата UUID в качестве входных данных.
  • Он разбивает строку UUID на каждый символ «-» и преобразует каждый результирующую шестнадцатеричную строку в десятичное число с помощью Функция parseInt() с основанием 16.
  • Он создает новый массив первых 8 десятичных чисел из UUID. и преобразует каждое число в строку base-32, используя toString() функция с основанием 32.
  • Он объединяет этот массив с новым массивом оставшихся десятичных дробей. числа из UUID, также преобразованные в строки base-32.
  • Результирующий массив строк base-32 объединяется в одна строка, которая возвращается как ULID.
  • Пример строки UUID передается в функцию, и результирующий Строка ULID регистрируется в консоли.

Вы также можете использовать [https://www.npmjs.com/package/ulid] для преобразования UUID в ULID.

Спасибо, я попробовал пакет npm, но не смог заставить его работать. ULID.ulid({uuid}) генерирует разные ulid каждый раз, когда он вызывается.

user3621898 13.12.2022 19:06

Затем вы должны каждый раз передавать другой UUID.

Tim Roberts 13.12.2022 21:21

Это не должен быть принятый ответ. Я попытался с 20227cf5-89cf-5215-964b-d65dc7829965, и он выводит G24V7L12EFKGL15IB6MBN3O56B5, что является недопустимым ULID.

Simo 30.12.2022 18:32

Другие вопросы по теме