Генератор ULID онлайн
Генерируйте сортируемые ULID, декодируйте встроенную метку времени и конвертируйте между ULID и UUID в браузере. Ничего не загружается.
Генератор ULID работает целиком в вашем браузере. Случайность берётся из Web Crypto API, а ULID, которые вы генерируете, декодируете или конвертируете, никогда не покидают ваше устройство и не попадают в ArrayKit.
Открыть генератор UUID
Об инструменте Генератор ULID
Генератор ULID создаёт ULID — лексикографически сортируемый идентификатор, упаковывающий 48-битную метку времени в миллисекундах и 80 бит случайности в компактную 26-символьную строку Crockford base32. Сгенерируйте один ULID или пакет из сотен, включите монотонный режим, чтобы ID, созданные в одну и ту же миллисекунду, всё же сортировались в порядке создания, и переключите регистр под формат, который предпочитает ваша база данных. Режим декодирования разворачивает процесс: вставьте любой ULID и прочитайте точное время создания как миллисекунды эпохи и метку времени ISO-8601. Встроенный конвертер превращает ULID в эквивалентный 128-битный UUID и обратно, не теряя ни бита. Удобно, когда нужны ключи базы данных, сортируемые по времени, ID для корреляции логов или альтернатива UUID. Случайные байты берутся из Web Crypto API вашего браузера, и каждый ULID строится на вашем устройстве, так что ничего из сгенерированного никогда не отправляется на сервер.
Возможности
- Сгенерируйте один ULID или пакет до 500 сразу
- Монотонный режим инкрементирует случайное поле, чтобы ID одной миллисекунды всё же сортировались корректно
- Использует Web Crypto API для стойкой случайности в последних 80 битах
- Декодируйте любой ULID в его встроенную метку времени в мс эпохи и ISO-8601
- Конвертируйте без потерь между ULID и его эквивалентным 128-битным UUID
- Вывод в верхнем или нижнем регистре под вашу схему
- Алфавит Crockford base32 пропускает I, L, O и U, чтобы избежать опечаток из похожих символов
- Скопируйте весь пакет или один ID в один клик
Как использовать Генератор ULID
- Оставьте выбранной вкладку «Генерировать» и задайте, сколько ULID нужно
- Включите «Монотонный» для упорядоченных по времени ключей или выключите для независимых случайных суффиксов
- Скопируйте ULID или весь пакет из поля вывода
- Переключитесь на «Декодировать», чтобы прочитать метку времени ULID, или на «ULID в UUID» для конвертации
Пример
Ввод
01ARZ3NDEKTSV4RRFFQ69G5FAV
Результат
timestamp: 1469922850259 (2016-07-30T23:54:10.259Z)
uuid: 01563e3a-b5d3-d676-4c61-efb99302bd5b
Первые 10 символов декодируются во время создания; все 128 бит отображаются в UUID.
Частые ошибки и устранение неполадок
- Декодирование сообщает, что ULID некорректен, хотя он выглядит правильно. — ULID состоит ровно из 26 символов. Уберите окружающие кавычки или пробелы и учтите, что первый символ должен быть 0–7, чтобы 48-битная метка времени не переполнилась.
- Два ULID, созданные в плотном цикле, сортируются не по порядку. — Включите «Монотонный». Без него ID, разделяющие одну миллисекунду, получают независимые случайные суффиксы и могут сортироваться в любом порядке.
- База данных отклоняет ULID в нижнем регистре. — Crockford base32 канонически в верхнем регистре. Выключите переключатель «Нижний регистр» или храните их без учёта регистра, поскольку декодирование принимает любой регистр.
- Сконвертированный UUID не выглядит как UUID версии 4. — У ULID нет битов версии или варианта, поэтому его форма UUID не будет нести 4 в ниббле версии. Это ожидаемо — конвертация сохраняет сырые 128 бит, а не раскладку UUID.
Часто задаваемые вопросы
- Что такое ULID и чем он отличается от UUID?
- ULID — это 128-битный идентификатор, записанный как 26 символов Crockford base32. В отличие от случайного UUIDv4, его ведущие биты — это метка времени в миллисекундах, так что ULID сортируются в порядке создания как обычный текст, оставаясь глобально уникальными.
- Как работает монотонная генерация ULID?
- Когда несколько ULID генерируются в пределах одной миллисекунды, монотонный режим переиспользует случайное поле этой миллисекунды и прибавляет к нему единицу для каждого нового ID вместо получения свежей случайности. Это гарантирует, что каждый ULID строго больше предыдущего.
- Можно ли восстановить время создания из ULID?
- Да. Первые 10 символов кодируют 48-битную метку времени в миллисекундах. Вставьте ULID в режим декодирования, и инструмент покажет точное значение в мс эпохи и соответствующую дату и время ISO-8601.
- Обратима ли конвертация ULID в UUID?
- Да. И ULID, и UUID содержат 128 бит, так что конвертер отображает каждый бит без потерь. Сконвертируйте ULID в UUID и обратно, и вы получите исходный ULID в точности.
- Почему алфавит пропускает I, L, O и U?
- ULID используют Crockford base32, который опускает I, L, O и U, чтобы ID легко читались и их было трудно набрать с ошибкой. При декодировании инструмент для удобства всё же принимает I и L как 1, а O как 0.
- Приватны ли генерируемые здесь ULID?
- Да. Каждый ULID строится в вашем браузере с помощью Web Crypto API для случайности. ID, которые вы генерируете, декодируете или конвертируете, никогда не отправляются в ArrayKit или на какой-либо сервер.
Связанные инструменты
Все инструменты ArrayKit