- Головна
- Генератор UUID
Генератор UUID
Генеруйте універсально унікальні ідентифікатори (UUID) використовуючи алгоритми на основі часових міток для запобігання дублікатам.
Як працюють UUID
UUID v1 (На основі часової мітки): Використовує поточну часову мітку (інтервали 100 наносекунд з 15 жовтня 1582) в поєднанні з MAC-адресою або випадковим ідентифікатором вузла. Це забезпечує унікальність між різними машинами та запобігає дублікатам навіть при одночасній генерації.
UUID v4 (Випадковий): Використовує криптографічно стійкі випадкові числа. Хоча теоретично можливі дублікати, ймовірність настільки низька (1 з 2^122), що вона незначна для практичних цілей.
UUID v7 (Сучасна часова мітка): Найновіша версія UUID, яка поєднує Unix часову мітку (48 біт) з випадковими даними (74 біти). Це забезпечує переваги сортування за часом v1, зберігаючи конфіденційність v4, що робить його ідеальним для первинних ключів бази даних.
Формат: UUID - це 128-бітні значення, відображені як 32 шістнадцяткові цифри у форматі: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Поширені сценарії застосування
UUID (також відомі як GUID) дають вам практично необмежений запас унікальних ідентифікаторів без координації з центральним органом. Кілька місць, де їх зазвичай використовують:
Первинні ключі бази даних
UUID дозволяють кільком сервісам або шардам генерувати ключі незалежно, без колізій. UUID v7 усе частіше є переважним, бо початкова позначка часу тримає вставки просторово близькими, а індекси - компактними.
Розподілені системи
Коли події створює багато вузлів, UUID на подію усуває вузьке місце централізованої послідовності й зберігає журнали відстежуваними між сервісами.
Ідентифікатори для публічного використання
UUID v4 в URL не показує, скільки записів існує, і не відкриває дверей для атак перебором, як це робить зростаюче ціле число.
Ключі ідемпотентності
Клієнти генерують UUID для кожного запиту, щоб сервер міг розпізнавати повторні спроби й не обробляти ту саму дію двічі.
Яку версію використовувати?
- Використовуйте v4, якщо вам потрібна проста випадковість без додаткових властивостей - це найбезпечніший типовий вибір для більшості застосунків.
- Використовуйте v7, якщо ідентифікатор буде первинним ключем бази даних або зберігатиметься в будь-якому індексі, де порядок вставки має значення. Вбудована позначка часу групує рядки разом і різко покращує продуктивність запису в масштабі.
- Використовуйте v1 лише тоді, коли вам конкретно потрібно вивести ідентифікатор із позначки часу та ідентифікатора вузла. У сучасних застосунках v7 - кращий вибір для того самого сценарію, без витоку MAC-адреси.
Часті запитання
Що таке UUID?
UUID (універсально унікальний ідентифікатор) - це 128-бітове значення, зазвичай записане як 32 шістнадцяткові цифри у форматі xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Різні версії генерують значення за різними стратегіями (випадково, за позначкою часу або й те, й інше).
Яка різниця між UUID та GUID?
Це одне й те саме. GUID (глобально унікальний ідентифікатор) - назва, яку вживають в екосистемі Microsoft; UUID - назва, що вживається в RFC 4122 та всюди інде. Формат і гарантії унікальності ідентичні.
Чи гарантовано UUID є унікальними?
Математично не гарантовано - але ймовірність колізії для UUID v4 становить приблизно 1 на 2^122, що значно нижче порогу для будь-якого практичного застосування. Для UUID v1 та v7 позначка часу й біти вузла/випадковості на практиці запобігають колізіям.
UUID v4 чи UUID v7 для первинних ключів бази даних?
UUID v7, як правило, кращий для первинних ключів. Оскільки його початкові біти - це Unix-позначка часу, нові рядки вставляються близько одне до одного на диску, що зберігає індекси компактними, а запис - швидким. Використовуйте v4 лише тоді, коли порядок вставки абсолютно не має бути передбачуваним.
Чи потрібен мені генератор UUID v1?
Рідко. UUID v1 містить MAC-адресу машини, що генерує (або випадковий замінник), що може розкривати інформацію. UUID v7 забезпечує ту саму можливість сортування за часом без цієї проблеми і сьогодні майже завжди є кращим вибором.
Чи є цей генератор UUID безкоштовним?
Так. Усе генерування відбувається у вашому браузері, обмежень немає, а обліковий запис не потрібен. Ви можете генерувати окремі UUID тут або перемкнутися на пакетний генератор - до 500 за раз.
Пов'язані інструменти
Інші безкоштовні інструменти Hexbon, які можуть бути вам корисні.