Генератор на UUID v4

Генерирайте UUID v4 стойности онлайн: 122 произволни бита, стандартна UUID структура и готови за копиране резултати във Вашия браузър.

Формат
Генерирани идентификатори
Готово. Генерирайте UUID v4 стойности във Вашия браузър.

Как е изграден този ID

Структура
128-битов UUID с версия 4 и RFC битове за вариант, представен като шестнадесетични групи във формат 8-4-4-4-12.
Ентропия
122 произволни бита, предоставени от crypto.randomUUID().
Време
Няма; идентификаторите от версия 4 не разкриват кога са били създадени.
Риск от колизия
Колизиите се управляват от 122 произволни бита, което далеч надхвърля практическите обеми на стандартните системи.
Пример
b369a29e-a73d-4d22-9fcc-3cdb5f98c0d1

Вашите идентификатори се генерират локално със силна произволност от браузъра. Нищо не се изпраща до BroBroGo.

Често задавани въпроси

Кога трябва да използвам UUID v4?

Използвайте UUID v4, когато имате нужда от непрозрачни произволни идентификатори, които не се сортират по време на създаване и не разкриват времева информация.

Мога ли да премахна тиретата или да направя буквите главни?

Да. Специализираният инструмент за UUID v4 съдържа панел с опции за UUID, откъдето можете да превключвате тиретата и главните букви в резултата.

Какво прави генераторът на UUID v4 тук?

Страницата генерира един или повече идентификатори UUID версия 4 – произволни 36-символни низа в стандартния 8‑4‑4‑4‑12 шестнадесетичен формат. Вие контролирате броя (от 1 до 100), дали буквите a–f да са главни, и дали да се включват тиретата. Идентификаторите се появяват моментално в браузъра ви; можете да копирате един идентификатор с едно кликване върху него или всички наведнъж.

Разликата спрямо други генератори на случайни низове е в използваните 122 бита чист случаен шум за всеки UUID. Останалите 6 бита са фиксирани – 4 за варианта и 2 за версията. Това означава, че UUID v4 стойностите се сортират произволно – те не носят времева или подредна информация. Ако ги използвате като първичен ключ в база данни, те фрагментират B‑дърво индекси (за разлика от времево сортирани формати). Вероятността за колизия е пренебрежимо малка за практически цели.

Страницата предлага и специфични превключватели за формат (главни букви, тирета), които имат значение само за UUID (v4 и v7); други типове идентификатори в инструмента използват различни контроли.

Структура на UUID v4: 122 бита случайност

Всеки UUID версия 4 е 128-битово число, от които 122 бита са произволни. Четирите бита (битове 12–15) определят версията – за v4 те са фиксирани на 0100 (четири в десетичен вид). Два бита (битове 6 и 7 от осмия октет) определят варианта – за стандартния RFC 9562 (и по-ранния RFC 4122) те са 10. Останалите 122 бита се генерират с помощта на криптографски надежден генератор на случайни числа в браузъра – crypto.randomUUID или подобен.

Каноничното представяне е осем шестнадесетични цифри, тире, четири цифри, тире, четири цифри, тире, четири цифри, тире, дванадесет цифри. Пример: 550e8400-e29b-41d4-a716-446655440000. Първите дванадесет знака не носят времева информация – те са само случайни.

На страницата можете да премахнете тиретата, което свива низа до 32 знака – полезно за URL‑адреси или среди, където форматирането пречи. Можете също да включите главни букви (A–F вместо a–f). Това не променя стойността, но влияе на съвместимостта с някои системи – например някои файлови системи третират главни и малки букви различно.

Случайност и вероятност за колизия

122 бита ентропия означават, че броят на възможните UUID v4 е 2¹²², което е приблизително 5,3 × 10³⁶. За да се получи колизия при 50% вероятност, трябва да генерирате около 2,7 × 10¹⁸ идентификатора (съгласно парадокса на рождения ден). Това прави колизията практически невъзможна за всяка реалистична система – дори при генериране на милиард идентификатора на секунда, ще са нужни милиарди години, за да достигнете такъв брой.

На страницата генерирането става локално в браузъра с помощта на силно криптографско API. Нищо не се изпраща към сървър. Това гарантира, че случайността не може да бъде предвидена от външен наблюдател и че няма мрежово забавяне.

Влияние върху индексирането на бази данни

UUID v4 са произволно разпределени. Когато се използват като първичен ключ в B‑дърво индекс (като при InnoDB в MySQL или B‑дърво в PostgreSQL), новите записи се вмъкват на произволни места в индекса. Това води до:

  • Фрагментация на индекса – страниците се разделят, за да поберат нови записи.
  • Често пребалансиране на дървото.
  • Повишено I/O при вмъкване, особено при големи таблици.
  • Загуба на локалност при последователно сканиране.

За разлика от това, времево сортираните идентификатори (като UUID v7 или ULID) вмъкват нови записи в края на индекса, което намалява фрагментацията и подобрява производителността при писане. Въпреки това, UUID v4 остават предпочитани, когато не искате идентификаторите да разкриват време на създаване или реда на записите.

Сравнение с времево базирани идентификатори

На страницата можете да изберете и други формати от падащото меню (UUID v7, ULID, NanoID). UUID v7 използва 48 бита за Unix времеви печат в милисекунди, последвани от 74 бита случайност. Това прави v7 сортируеми по време, но също така и предсказуеми – ако знаете времето на създаване, можете да отгатнете първата половина на идентификатора.

ULID предлага подобна времева сортируемост, но с различно кодиране (Crockford Base32). NanoID използва различен набор от знаци и може да бъде по-къс (21 знака по подразбиране).

UUID v4 не носят никаква времева информация. Това ги прави подходящи за случаи, когато не искате да изтича информация за времето на създаване или когато записите се създават в разпределена среда без синхронизирани часовници.

Кога и защо да използвате UUID v4

Случайните идентификатори са полезни в няколко сценария:

  • Предотвратяване на изброимос – ако използвате последователни числа (1, 2, 3), всеки може да познае колко записи имате и да ги обходи. UUID v4 не позволяват това.
  • Разпределени системи – когато няколко възела генерират идентификатори без координация, рисковете от дублиране са минимални.
  • API токени и сесийни ключове – 122 бита ентропия гарантират, че токенът не може да бъде отгатнат.
  • Тестване и генериране на данни – попълване на тестови бази с реалистични уникални ключове.

На страницата можете да генерирате до 100 идентификатора наведнъж. Промяната на който и да е параметър (формат, брой, главни букви, тирета) моментално прегенерира всички.

Персонализиране на формата

Двата превключвателя – Главни букви и Включване на тирета – са специфични за UUID форматите (v4 и v7). Когато премахнете тиретата, получавате 32-знаков низ (без разделители). Това е полезно за:

  • Използване в URL адреси, където тиретата може да се интерпретират неправилно.
  • Ограничения на дължина в някои полета.
  • Съвместимост с наследени системи, които очакват само шестнадесетични цифри.

Главните букви (A–F) се използват по стандарт в някои среди (например.NET Framework генерира UUID с главни букви по подразбиране). Превключването между главни и малки не променя стойността, но може да повлияе на съвпадения при сравнение на низове (регистърозависимо).

Страницата показва статус “Ready.” или “Generated.” и след копиране показва “Copied all!”. Кликването върху отделен идентификатор го копира в клипборда.

Често задавани въпроси (FAQ)

Каква е разликата между UUID v4 и UUID v7?
UUID v4 използва 122 бита случайност, докато UUID v7 съдържа 48-битов времеви печат и 74 бита случайност. v7 е сортируем по време, v4 не е.

Мога ли да получа колизия при генериране на много UUID?
С 122 бита ентропия рискът е практически нулев. За да имате 50% шанс за колизия, трябва да генерирате около 2,7 × 10¹⁸ идентификатора.

Защо да използвам UUID v4 като първичен ключ, ако фрагментира индекса?
Ако не се нуждаете от времева сортируемост и искате да предотвратите изброяване на записи, UUID v4 са добър избор. Допълнителна индексация (например с клъстеризиран индекс върху друго поле) може да смекчи производителността.

Каква е максималната дължина на низ без тирета?
32 шестнадесетични знака (128 бита, но 122 от тях са случайни).

Мога ли да генерирам повече от 100 UUID наведнъж?
Не, страницата приема брой между 1 и 100 включително.

Генерира ли се идентификаторът на сървъра?
Не, всичко се случва локално в браузъра с помощта на crypto.randomUUID или аналогично API. Нищо не се изпраща мрежово.