Генератор и декодер KSUID

Создавайте KSUID — идентификаторы из 27 символов, которые сортируются по времени создания, — с криптографически стойким генератором случайных чисел, или вставьте KSUID, чтобы узнать, когда он создан и какая у него случайная часть. Всё работает в браузере.

Создан (UTC)
2017-10-10T04:00:47Z
Метка времени (секунды от эпохи KSUID)
107608047
Случайная часть (hex)
B5A1CD34B5F99D1154FB6853345C9735

KSUID

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Укажите, сколько создать (от 1 до 100). KSUID появляются сразу; кнопка «Создать заново» выдаёт новый набор.
  2. Скопируйте список — по одному KSUID на строку, уже по порядку.
  3. Чтобы разобрать ID, вставьте его в поле Разобрать KSUID: появятся время создания в UTC, исходная метка времени и случайная часть.

Как это работает

KSUID — это 20 байтов:

  • байты 0–3: секунды от эпохи KSUID (Unix-время 1 400 000 000), старший байт первым;
  • байты 4–19: 128 случайных бит.

20 байтов читаются как одно 160-битное число и записываются в системе по основанию 62 цифрами 0-9, A-Z, a-z, дополняясь слева нулями до 27 символов. Самый большой возможный KSUID — aWgEPTl1tmebfsQzFP4bxwgy80V. Разбор идёт теми же шагами в обратном порядке.

Пример

KSUID из документации формата, 0ujtsYcgvSTl8PAuAdqWYSMnLOv, разбирается так:

  • метка времени 107608047 → Unix-время 107 608 047 + 1 400 000 000 = 1 507 608 047;
  • создан 2017-10-10T04:00:47Z;
  • случайная часть B5A1CD34B5F99D1154FB6853345C9735.

Советы

  • Храните KSUID как строку в столбце с учётом регистра: a и A — разные цифры.
  • Время создания видно любому, у кого есть ID; не используйте KSUID там, где это раскрывает лишнее.
  • Если нужен порядок до миллисекунды, подойдёт ULID; для совместимости со стандартами — UUID.

Частые вопросы

Что такое KSUID?

K-Sortable Unique IDentifier — формат, опубликованный компанией Segment. Это 20 байтов: 4-байтовая метка времени в секундах и 16 байтов (128 бит) случайных данных, записанные 27 символами base62 (0-9, A-Z, a-z). Время стоит в начале, поэтому сортировка KSUID как строк сортирует их по времени создания.

Почему метка времени не совпадает с Unix-временем?

KSUID считает секунды от собственной эпохи — 1 400 000 000 в Unix-времени (13 мая 2014 года, 16:53:20 UTC), поэтому 32-битного счётчика хватит до 2150 года. Чтобы получить Unix-время, прибавьте 1 400 000 000: 107 608 047 превращается в 1 507 608 047, то есть 10 октября 2017 года, 04:00:47 UTC.

Чем KSUID отличается от UUID и ULID?

В UUID v4 122 случайных бита и нет порядка по времени. В ULID 48-битное время в миллисекундах и 80 случайных бит в 26 символах. У KSUID точность времени всего секунда, зато случайных бит 128 — больше, чем у обоих, — поэтому совпадения практически исключены даже на множестве серверов.

Достаточно ли случайны создаваемые здесь ID?

Да. Случайная часть берётся из crypto.getRandomValues — криптографически стойкого генератора браузера, и ничего не отправляется на сервер. ID, созданные в одну секунду, различаются только случайной частью, поэтому список уже отсортирован.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 7 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.