Українська

Інструменти розробника · UUID генератор

UUID Версія 1 до 8 Яким чином ви повинні стати?

· Підземелля

Опубліковано ToolAcre · Редакція журналу

Увійти криптографія веб-сайт

Висотні варіанти версій, масивні з їх використанням: часові, іменні, випадкові та нестандартні макети
Головна ToolAcre векторна ілюстрація

Важкі версії діляться одним форматом, але вирішувати різні проблеми: час замовлення, відтворюваність, випадковість або нестандартні макети. Цей пост пояснює кожен і дає шляхи прийняття рішення.

Один формат, вісім рецептів — чому версія ніблука має значення при виборі бібліотеки

Мистецтво UUID стандарт визначає стандарт 128-розміщений формат як тридцять-сиксимальних символів з фенами. RFC 9562 визначає вісім різних рецептів — відтворює один через вісім—для заповнення ті біт з різними візерунками та значеннями. У версії nibble (перший характер третьої групи) визначено метод, який виробляв значення, що слугує етикеткою. Вибір неправильної версії означає зберігання зайвої інформації про час, відсутні гарантії замовлення для виконання бази даних або невідповідності ролі ідентифікатора. Ця публікація проходить через кожну версію, яка бетонна проблема вирішує, коли розробники зустрічають її на практиці, а також забезпечується ряд рішень для вибору правильної версії для ваших конкретних системних вимог.

v1 і v6: час плюс вузол — оригінальний часовий макет і реordered версія, яка добре сортує

Верстка 1 комбінація 60-bit timestamp з ідентифікатором вузла (оригінально a MAC адреса, хоча сучасні впровадження використовують випадкові значення, щоб уникнути витікання апаратної інформації. Записи часу 100-наносекундні інтервали з жовтня 15, 1582. Область вершини може виявити, коли був створений ідентифікатор і де він виник географічно, тому сучасні впровадження не дозволяють MAC адреса. верстка 6 переміщення такої ж інформації про час і вузли для поліпшення сортуваності шляхом переміщення часових бітів високого замовлення на фронт, що робить V6 UUIDs правильно сортувати в лексикографічному порядку. Якщо Ваше додаток потребує UUIDs, які природно сортують, створюючи час з великим індексом, v6 є сучасним вибором.

в2: DCE Безпека — рідко використовується варіант, який з'єднується POSIX ідентифікатори

Верстка 2 рідко використовується в нових системах. Земельні вироби POSIX ідентифікатори користувачів або групи в UUID макет, що робить його корисним тільки в середовищі спадкових даних, де ті ідентифікатори здійснюють організаційне значення. В2 дизайні передбачає конкретну обчислювальну модель (DCE Безпека, яка є некомерційним в сучасних розподілених системах. Більшість організацій, пов'язаних з UUIDs з користувачами або групами в їх шарі програми, через панелі або таблиці пошуку, не за допомогою кодування ідентифікатора користувача в сам ідентифікатор. Цей розділ стосується полегшує зміни моделей авторизації, міграції даних користувачів та збереження слухових причепів. Утилізація облікових даних безпосередньо в UUIDs створює тісний зв’язок та робить системи, які важче розвиватися.

v3 і v5: на основі імен — детермінативні ідентифікатори, які мають місце з простору імені та ім'я з MD5 або SHA-1

Редакція 3 і 5 UUIDs є детерміналістичною: той самий простір імен і назва завжди виробляють той же ідентифікатор, ідеальний для представлення стабільних карт з зовнішніх даних. верстка 3 зручності MD5 і версія 5 зручності SHA-1 як алгоритми хешу, що відображають свої відповідні віки та прийняття. Коли запис клієнта прибуває для імпорту, v5 UUID виручено з фіксованого простору імен буде ідентичним через кілька імпортних трас, запобігаючи дублікати записів. Цей детермінізм означає UUID відповідна і передбачувана для всіх, хто знає простір імен і вхід. Практичне значення світиться в сценаріїх інтеграції даних: відведення записів клієнтів з декількох систем, запобігання дублікатів в перерахунку імпорту, а також присвоєння стабільних ідентифікаторів до елементів.

v4: випадковий — 122 bits з CSPRNG і вибір за замовчуванням при замовленні не має значення

Верстка 4 - вибір за замовчуванням при замовленні не потрібно, і ви хочете самостійного покоління без центральної координації. В4 UUID складається з 122 bits з криптографічно захищеного випадкового джерела, з шістьма бітами, встановленими для фіксованих значень (версія нібл 4 і RFC 9562 варіанти біт 10... У випадковості є весь момент: кожен виклик виробляє різне значення, зіткнення залишаються ванільно малоймовірними, і не потрібно зовнішнього стану або координації. Це версія ToolAcre генерує за допомогою crypto.randomUUID() або crypto.getRandomValues(). Ця версія підходить для посилань об'єктів, неструктурованих даних, а також більшості ролей за межами основних ключів або сортування контекстів.

v7 і v8: Unix час і користувацький — сучасна версія для ключів бази даних і втечу люка для макетів з бджолиним замовленням

Верстка 7, стандартизований в RFC 9562, приносить сучасні своєчасні властивості в UUID формат. За допомогою 48-bit Unix мілісекундний часовий апарат, 12 bits суб-мілісекундної точності, і 62 випадкові біти комбіновані. Унікс мілісекундний часовий апарат хороший до року 10889, що робить його придатними для систем. В результаті правильно сортувати лексико-графічне замовлення і вписується в стандарт 128-розсилка UUID стовпчик без спеціального перетворення або кодування. Якщо ви використовуєте свій додаток, ви можете визначитися з часом створення в стандарті UUID формат, v7 є найкращою практикою. верстка 8 - стандартизований лов-всі для форматів, корисних тільки якщо вам потрібна специфікація бітових макетів, не покритих v1-v7.

У роботі прикладу — шлях прийняття рішення, застосований до трьох сценаріїв: громадський API посилання, основний ключ і стабільний ідентифікатор для імпортних записів

Три сценарії реального світу ілюструвати вибір версії: перший, громадський API посилання має бути стабільним через API екземпляри, не повинні час створення витоку, і повинні бути однаковими через перезавантаження сервера, так що різні екземпляри генерують однакову посилання для того ж документа. Використовуйте v5 з стабільним простором імен та ім'ям документа. По-друге, першочерговий ключ для безперервного зростання таблиці необхідно бути унікальним, не викликати фрагментацію індексу, і повинен бути генератив будь-яким екземпляром програми без центральної координації. Використовуйте v7 для сортування ідентифікаторів з стандартом UUID підтримка екосистеми. Третя, архівовані записи, які вимагають стабільного вигляду, потребують негайних ідентифікаторів.

Поруч: забрати майно, не від звички — ToolAcre генератор випускає випадкові UUIDs з браузера CSPRNG для випадків, які називають v4

Вибір версії слід від ваших вимог до дизайну та систем, не від конвенції або знайомства. Випадкові UUIDs (v4) є типовим, оскільки вони не вимагають державної або координації та виробляють незалежних ідентифікаторів, придатних для більшості ролей. Термінові варіанти (v6, v7) вирішуються на основі показників-локалності за вартістю часової інформації, що витікає або за годинникової синхронізації. Визначення (v3, v5) запобігає дублікати імпорту та увімкнення стабільних зовнішніх карт за вартістю передбачуваності — будь-який, хто знає простір імен може їх перенести. ToolAcre генерує випадкові v4 UUIDs з криптографічно захищеного генератора браузера. Якщо вам потрібна різна версія, то добре сформована перевірка підтверджує ідентифікатори, які задаються в якості дійсності.