Інструменти розробника · UUID генератор
Читання UUID від руки: Де версія і Variant Bits Live
· Як працює
Опубліковано ToolAcre · Редакція журналу
Увійти криптографія веб-сайт

Два шестигранних персонажів в кожному UUID Повідомте, що версія виконана і який варіант планування його наступним чином. Вчимося читати їх на погляд і дізнатися, що вони не можуть розповісти вам.
Яка система зробила цей ID? — питання лог-передбачень, що версія ніблука може відповісти
А.А UUID string has 36 символи: тридцять-два шксадекма цифр і чотири хіфени на посадах 8-4-4-4-12. Два символи в кожному UUID—подарування на посадах 14 і 19—encode метаданих: поле версії показує, що алгоритм, який створив ID, а поле варіанту показує, що стандартне планування його слід. Читання цих двох символів без інструментів - майстерність журналу для судових перевірок: ви можете помітити UUID в базі даних, що спрацьовує або похибка повідомлення і відразу ж знаєте, чи є частамп v1 (який час створення витоків), значення v4 випадкового (який був створений з CSPRNG), або щось інше. Номер версії займає біт 48–51 з UUID, які карти до першого шестигранного характеру третьої групи.
Мистецтво 128-розмітка в п'яти групах — як 8-4-4-4-12 карти на байти і чому групи історичні, не функціональні
Для the string xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxxxxxxxxxxxxxx, the характер на позиції 14 є версія. RFC 9562 визначає версії 1 через 8: v1 є Gregorian-time-на основі і час створення витоків; v4 є випадковим; v7 є Unix-time-на основі і сортується. верстка 0, 9, і вище, зарезервовані або невикористані. Якщо ви бачите v1 UUIDЯкщо ви бачите v4, ID є випадкові байти з набором версій біт; якщо ви бачите v7, він сортує час створення. Версія необов'язково; кожен правильно сформований UUID має один. У варіанті поле займає біт 64–65 з UUID, два найбільш значущі біти октета 8.
Версія nibble — перший символ третьої групи, що 1 через 8 і що 0 або 9 там вказується
У текстовому представленні xxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, перший символ четвертої групи (положення 19) кодує варіант. Для RFC 9562 варіант (стандарт в сучасному використанні), цей характер повинен бути 8, 9, a, або b - хексадекальні уявлення про хокад 1000, 1001, 1010й 1011 в бінарних. Будь-який інший символ (0–7, c-f) вказує на різний варіант: 0–7 , NCS задоволення сумісності з Microsoft Legacy GUIDs з невеликим рівнем байтів; e-f є зарезервованими. Коли ви читаєте позицію 19 і див 8, 9, a, або b, ви шукаєте RFC 9562 UUID. Будь-яке інше значення означає байти слідувати різним тлумаченням. Мистецтво 128-розмітка грошових коштів на октетах 0–15, але формат тексту відокремлює їх групами для зчитування, не функції.
Поле варіанту — чому перший символ четвертої групи 8, 9, або б для RFC УУЇД, і що c/d (Мікрософтова спадщина) або 0–7 (NCS) сигнал
П'ять груп представляють історичні межі поля: перші три поля містять часовий та версію в v1 UIDs, четверте поле має послідовність годинника та варіант, п'яте поле має ідентифікатор вузла. верстка 4 і далі UUID варіанти не використовують ці назви поля, але і ті ж бітові позиції все ще виконують версію і варіант. Читання v4 UUID прийняття, що більшість 128 bits є випадковий перевантаження, але два з них — в позиціях 14 і 19 в тексті — закріплюється стандартом. Ті фіксовані біти довести ID в 4 і RFC-варіант. Ніл UUID , 00000000-0000-0000-0000-000000000000, всі нулі, і не несе ніякої версії на всіх. Макс UUID ffffff-ff-ff-ff-ff-ff-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, а також зарезервований і неверсійований.
Упорядкований приклад — декодування трьох ідентифікаторів зразка за характером, включаючи v4 і v7
Кожен інший добре сформований UUID має версію в третій групі і варіант в четвертому. Тестуйте себе з трьома зразками ID: 123e4567-e89b-12d3-a456-426614174000 (v1, варіант RFC через позицію 19 є); 9b2e4f1a-4f3e-4c1a-8a7d-1b2c3d4e5f60 (v4, варіант RFC через позицію 19 про нас 8); 018f0c2e-1b5a-7c3d-9e4f-5a6b7c8d9e0f (v7, варіант RFC через позицію 19 про нас 9). У ToolAcre інспектор підтверджує Ваше читання. У Вашій базі даних, або була захищена перевірка формату. Версія v1 використовує час і апаратні засоби як вводи, так ідентичні v1 UUIDs з різних машин, що означає годинник skew або синхронізацію проблеми. Версія v4 є випадковим, тому дублікати v4 UUID або зламаний випадковості або астрономічно неймовірний зіткнення (грубо один за 2. 7 trillion UUIDs з звуковою випадковістю).
Nil і Max — два всі значення, які не виконуються в усіх версіях
Версія 0 або 9 означає рядок не діє UUID на всі. Читання версії та варіанту є першим кроком у розумінні того, що ID є; перевіряючи, чи існує він або є унікальним є другим і третіми кроками, що виконуються базою даних та логікою бізнес. Розуміння бітових позицій дозволяє знезараження міграцій даних. При імпорті UUIDs з систем спадкування, деякі інструменти експортувати варіанти полів, які не відповідають вимогам законодавства RFC 9562 стандарт. Випадковий поле c або d вказує на Microsoft GUID в малокінечному порядку байт. Ці ідентифікатори GUID є дійсними ідентифікаторами в системах Microsoft, але не переможливаються з RFC 9562 UUIDs без перетворення байтів. Читання позицій 19 ви відразу ж розповідаєте, що система, що генерується ID. Якщо ви бачите 8, 9, a, або b, у вас є RFC стандарти UUID.
Який формат не може розповісти вам — що ID існує в базі даних, що він був створений безпечно, або це унікальний
Якщо ви бачите c або d, ви маєте Microsoft GUID. Якщо ви бачите інший характер, ідентифікатор неформований або з непристойної системи. Мистецтво ToolAcre генератор завжди виробляє RFC 9562 УУЇДи з позицією 19 як один 8, 9, або б. Трибітне поле версії кодує сім можливих значень (1–7; версія 0 і 8 мають спеціальні значення. верстка 1 - Грегорський мітр, версія 3 , MD5- простір імен, версія 4 випадковий, версія 5 , SHA-1- простір імен, версія 6 - Unix-timestamp-на основі (пропозиція), версія 7 - Вимірюваний у вигляді одноразових одноразових (стандартизований у RFC 9562), версія 8 зарезервований для нестандартних форматів. Читання позиції-14 ви можете негайно повідомити, що алгоритм був використаний. Якщо ви відмовляєтеся UUID зіткнення або несподівані сортування, номер версії - це ваш перший погляд. ToolAcre генерує v4 UUIDs виключно з крипто.
Похід: два символи, багато контексту — використання ToolAcre добре сформований чек, щоб підтвердити рядка парз, потім читати версію nibble самостійно
getRandomValues; кожен UUID вона виробляє 4 на позицію 14. Парсінг UUID структура вручну є корисною нагодою для налагодження складних систем, де інструменти не доступні. У виробничому інциденті ви можете прочитати UUIDs з бази даних, журналу помилок або кешу без запуску спеціального інструменту. Ви шукаєте позицію 14 визначити версію (це час витоку? це випадково? чи можна? ). Ви шукаєте позицію 19 визначити варіант (це RFC стандарт? це Microsoft GUID? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ). Ці два символи, з 36 всього, перенести метадані. Решта 34 завантажуються символи: часові або випадкові байти або інші алгоритмічні дані. Знаючи те, що таке завантаження дозволяє зрозуміти роль ID у вашій системі.