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

Генерирайте стандартни UUID стойности онлайн. Тази страница използва произволен UUID v4 със 122 произволни бита и познатата 36-знакова структура.

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

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

Структура
UUID v4: шестнадесетични групи във формат 8-4-4-4-12 с RFC битове за вариант.
Ентропия
122 произволни бита; версията и вариантът консумират 6 бита от общата 128-битова стойност.
Време
Не се кодира времево клеймо или информация за устройството.
Риск от колизия
Границата на парадокса на рождените дни за 122 произволни бита е пренебрежимо малка за стандартни идентификатори в приложения, тестове и бази данни.
Пример
c2437709-fc6d-457e-8744-3ca266b07153

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

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

Какъв вид UUID генерира тази страница?

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

Изпращат ли се генерираните UUID на сървър?

Не. Генерирането се извършва директно във Вашия браузър чрез Web Crypto API, така че стойностите остават изцяло на Вашето устройство.

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

Тази страница генерира един или повече идентификатори във формат UUID v4 — случаен 36-символен низ, представен в стандартния шаблон 8-4-4-4-12. Вие контролирате броя на идентификаторите (от 1 до 100 включително) и дали да бъдат главни или малки букви, както и дали да съдържат тирета. Генерирането се извършва мигновено във вашия браузър, като се използва силна криптографска случайност — нищо не се изпраща към сървър. Можете да копирате отделен идентификатор с едно кликване или всички наведнъж чрез бутона „Copy all“. След генериране се показва статус „Генерирано.“, а след копиране на всички — „Копирани всички!“. Началният статус е „Готово.“.

Какво прави тази страница различна

UUID v4 използва 122 бита случайност, без вградена времева отметка. Това означава, че всяка стойност е практически непредсказуема и вероятността за колизия е пренебрежимо малка (около 2^-122). За разлика от UUID v7 и ULID, v4 идентификаторите се сортират произволно — те не носят хронологична информация. Това фрагментира индекси в бази данни, когато се използват като първичен ключ, защото новите стойности не се записват последователно. Страницата ви позволява да включите/изключите главни букви и тирета, но вътрешната случайност и форматът са фиксирани по стандарта. Промяната на който и да е параметър (брой, главни букви, тирета) незабавно регенерира целия списък. Това не е обикновен текстов редактор — всяка опция задейства ново генериране, за да се гарантира, че изходът съответства на избраните настройки.

Входни данни и изход

Входове

  • Формат: UUID v4 (избиран от меню с опции: UUID v4, UUID v7, ULID, NanoID). На тази страница разглеждаме само UUID v4. Ако промените формата, опциите за главни букви и тирета могат да се променят.
  • Брой: Число между 1 и 100 включително. Стойности извън този диапазон не се приемат.
  • Главни букви: Превключвател, който показва UUID-а с главни букви (по подразбиране: изключено, т.е. малки букви).
  • Включване на тирета: Превключвател дали да се включат тирета в представянето 8-4-4-4-12 (по подразбиране: включено).

Изходи

  • Генерирани идентификатори: Списък от UUID v4 низове.
  • Брой идентификатори: Показва се до списъка (например „10 IDs“).
  • Статусни съобщения: „Готово.“ (начално), „Генерирано.“ (след генериране), „Копирани всички!“ (след копиране).

Правила и гранични случаи

  • UUID v4 съдържа 122 бита случайност в 16 октета, представени като 32 шестнадесетични знака плюс 4 тирета (когато тиретата са включени) — общо 36 символа.
  • Вероятността за колизия е толкова малка, че практически може да се игнорира, но стойностите се сортират произволно — няма хронологична подредба.
  • Промяната на който и да е параметър (брой, главни букви, тирета) незабавно регенерира всички идентификатори.
  • Кликването върху отделен идентификатор го копира в клипборда.
  • Бутонът „Copy all“ копира всички показани идентификатори наведнъж.
  • Цялата генерация се извършва локално в браузъра чрез криптографски псевдослучаен генератор — нищо не се изпраща към сървър и не се записва.

За кого е предназначен този инструмент

  • Разработчици, които се нуждаят от уникални, непредсказуеми идентификатори за токени за сигурност, идентификатори на сесии или несеквенциални ключове. UUID v4 е идеален, когато угадаемостта трябва да бъде минимизирана.
  • Администратори на бази данни, които са наясно с компромиса: UUID v4 избягва колизии, но може да фрагментира индекси, когато се използва като първичен ключ (заради произволния ред на запис). За тях съществуват алтернативи, сортируеми по време (UUID v7, ULID).
  • Всеки, който генерира тестови данни, външни идентификатори или анонимизирани ключове, когато времевата подредба е без значение, а непредсказуемостта е важна.
  • Потребители, които искат бързо да генерират пакет от UUID v4 стойности (до 100) и да ги копират с главни или малки букви, с или без тирета.

Структура на UUID v4 и качество на случайността

UUID v4 е дефиниран в RFC 4122. Неговата структура е 128-битов идентификатор, от който 122 бита са произволни, а останалите 6 бита са фиксирани за версията (4) и вариант (10xx). Версията се кодира в 13-ия знак на шестнадесетичния низ (т.е. 4-ти знак от третия блок 4-xxx), а вариантът в 17-ия знак (първи знак от четвъртия блок). Така например UUID може да изглежда като f47ac10b-58cc-4372-a567-0e02b2c3d479. Тук 4 след втората тире показва версия 4, а a в началото на четвъртия блок (двоично 1010) указва вариант RFC 4122.

Генерирането на случайните битове в браузъра се осъществява чрез криптографски псевдослучаен генератор (CSPRNG), достъпен чрез API като crypto.getRandomValues() в съвременните браузъри. Това осигурява високо качество на случайността, подходящо за криптографски цели. За разлика от Math.random(), който не е криптографски сигурен, този метод не може да бъде предвиден. Страницата използва точно този подход.

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

UUID v7 (също част от новите стандарти) включва времева отметка с милисекундна точност в първите 48 бита, което позволява хронологично сортиране. ULID използва подобен подход с 48-битова времева отметка и 80 бита случайност, но с различно кодиране (Croford Base32). Основният компромис: v4 предлага максимална непредсказуемост за сметка на произволен ред; v7 и ULID жертват малко случайност (или битове) в полза на сортируемост. Ако базата ви използва B-дървета (като повечето релационни СУБД), UUID v4 като първичен ключ може да доведе до чести разделяния на страници (page splits), тъй като новите записи се появяват на произволни места в индекса. В такива случаи v7 или ULID са за предпочитане. Инструментът на тази страница обаче ви дава избор – можете да превключите към други формати, ако е необходимо.

Ефекти от опциите за главни букви и тирета

По подразбиране UUID се показва с малки букви и тирета. Превключването към главни букви променя само визуалното представяне – случайността и форматът остават същите. Главните букви могат да улеснят четенето при определени шрифтове, но стандартът RFC 4122 препоръчва малки букви. Премахването на тиретата произвежда 32-символен низ (само шестнадесетични цифри), което е полезно, когато системата изисква компактен идентификатор. И двете опции регенерират списъка, за да се гарантира, че всички идентификатори са в избрания формат.

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

1. Каква е вероятността за колизия при UUID v4? Вероятността е изключително ниска. С 122 бита случайност, за да имате 50% шанс за поне едно сблъскване, трябва да генерирате около 2,71×10^18 идентификатора (приблизително 2^61). На практика за повечето приложения това е невъзможно.

2. Мога ли да използвам UUID v4 като първичен ключ в база данни? Можете, но трябва да сте наясно с потенциалното влошаване на производителността поради фрагментация на индекса. Ако не ви е необходима времева подредба, можете да обмислите алтернативи като UUID v7 или ULID, които са частично сортируеми.

3. Защо страницата регенерира всички идентификатори при промяна на опциите? За да се гарантира, че всеки идентификатор отговаря точно на текущите настройки. Превключването на главни букви или тирета променя представянето, а увеличаването на броя изисква нови случайни стойности. Всички тези промени задействат повторно генериране.

4. Сигурно ли е генерирането в браузъра? Да, използва се crypto.getRandomValues(), който предоставя криптографски сигурна случайност. Нищо не се изпраща до сървъра, така че вашите идентификатори остават частни. Можете да използвате инструмента и офлайн.

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

6. Каква е разликата между UUID v4 и v7? UUID v4 използва само случайност (122 бита), докато v7 включва 48-битова времева отметка, което го прави частично сортируем по време на създаване. v4 е по-непредсказуем, v7 е по-подходящ за индекси в бази данни.