Українська

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

З 128 Bits до 36 Характеристика: Як UUID Текстові програми

· Як працює

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

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

Р 128-бітне значення показано як байти, потім як 36-character шестигранний з гіфенами, потім як 22-character base64url, ілюстрація простору
Головна ToolAcre векторна ілюстрація

Р UUID Про нас 16 bytes, але його звична форма 36 символи. Цей пост пояснює, що хіфени, правила справи, а коротше кодування людей використовують, коли стандартна форма занадто довго.

Чому стовпець ширше значення — значення 16-затрата вартості, яка вартість 36 символи в тексті і що означає для URL-адрес і зберігання

Ширина стовпця зберігання виповнюється при виборі UUID формат. А.А 128-обмінна вартість 16 bytes, але його текстове представлення залежить від кодування: hexadecimal (36 символи з гіфенами, 32 без), base64url (22 символи), base58 (22–23 символи), Crockford base32 (для Windows)26 символи. Якщо у вас є schema-магазини UUIDs як VARCHAR(36), ви витрачаєте 36 символи в кожному ряду. У таблиці з 1 мільярди рядків і не інших стовпців, що є 36 gigabytes of text overhead у порівнянні з 16 gigabytes of the бінарних. Вибір не просто косметичний; він впливає на розмір запиту, мережеві круглі смуги, а також тиск кешу. Канонічний формат 36 символи: вісім цифр шестигранних, фен, чотири цифри шестигранних, фен, чотири цифри шестигранних, фен, чотири шестигранних цифр, гіфен, дванадцять цифр.

Хекс все переповнений — кожен байт стає двома героями, а чотири фени завершують 36

Кожен байт стає рівно двома шестигранними героями (0–9, а-ф). Визначені гіфени для читабельності та причини спадності при перших вказаних Уїдах. Hexadecimal кодування doubles the atte count: 16 bytes почати 32 геї цифри плюс 4 гіфени. Це найшвидший кодування і найдовший, але людський і підтриманий всюди. Правила оформлення: RFC 9562 мандат нижньої колонтитули для канонічного виходу, але вхід є чутливим. Укладання верхнього регістру відходив можливість нормалізувати, тому зберігати нижню резинку і порівняти корпус-інженситивно на вході. Base64url кодування являє собою три байти як чотири символи з використанням 64-чарівний алфавіт (А–З, а–з, 0–9, мінус, underscore). Шістьнадцять байтів стають 21 символи плюс один шарф, всього 22 символи. Base64url знімає начинку і стандартні символи (плюс і slash) зарезервовані URL-адреси.

Правила кейсу — нижня кришка на виході, дезінтенсивність на вході, і чому порівняння змішаних кліщів викликають німі міточки

А.А UUID в base64url формат зберігає 14 символи, що порівнюються з шестигранною і діє в URL без відсотків-кодування. З'явився товар, який знаходиться в декількох кроках від відповідальності за товар, який знаходиться в даній країні, 8, Б 8 зручно вплутати. Base58 використовується Біткойн та іншими блокчейнами та видаляє неоднорідні символи (Bioduk)0, О, I, л, що робить результат 22–23 символи, що залишилися, читаються. Crockford base32 (розроблений для перевіркиsummed ISBN-подібні формати) 26 символи і претензії коригують над грудністю. Microsoft Office (Українська) GUID пастка для байтів застосовується до UUID зберігання в деяких базах даних. RFC 9562 визначає мережу за допомогоюte замовлення (великий ендійський) для всіх байтів. Деякі Microsoft SQL Сервер конфігурації зберігає GUIDs з невеликим рівнем байтів в перших трьох областях.

Кодування коротше — base64url на 22 символи, base58 і Crockford base32, з їх торгово-офісами в читабельності та безпеці копіювання

Те ж 128-бітне значення, що зберігається в великих і малокінечних виробах різних шістнадцяткових рядках. А.А UUID 550e8400-e29b-41d4-a716-446655440000 зберігати як Microsoft GUID може бути отримано в 00840e55-9be2-d441-a716-446655440000 (байти) 0–3 і 4–5 і 6–7 зворотний. Якщо ваші системи містки між RFC-компліант і Microsoft системи, необхідно знати про це і або нормалізувати на межі або документі, який формат ви використовуєте в кожному стовпчику. Приклад роботи: v4 UUID 9b2e4f1a-4f3e-4c1a-8a7d-1b2c3d4e5f60 в шексадекмокрісло 36 символи. Як 16 bytes 1б 2е 4ф 1а 4ф 3e 4c 1a 8a 7d 1b 2c 3d 4e 5f 60. У base64url: розбити на трибайтні шматки, конвертувати в base64, смуга набивання: my5PGk8-TBqKfRsPTRPX2A. У шістнадцятковому без фенів: 9b2e4f1a4f3e4c1a8a7d1b2c3d4e5f60 (32 символи.

Пакування Microsoft за допомогою байтів — як GUID- перші три поля зберігаються малокінечно, тому ті ж байти можуть друкувати як два різні рядки

Base64url зберігає 14 символи; base58 врятував грубо таким же; шестигранний стандарт. Виберіть на основі вашого способу використання: якщо ідентифікатор з'являється в URL-адресах і кожному характері, скористайтеся base64url; якщо він з'являється в журналах і УІ, де людина його читає, використовуйте шестигранну канонічну форму; якщо ви будуєте систему блокчейн або розподілену систему, де контрольні питання, використовуйте base58 або Crockford base32. При виборі типу стовпчика встановіть значення, яке оптимізує для вашого фактичного шаблону доступу. Якщо ви запитуєте UUIDs часто і потребують випадково-інтенсивного узгодження, зберігати бінарні (16) і дайте на роботу бази даних. Якщо ви перемістили підрядку (пошуки для Уїдів, які починаються з префіксу), токсадектер більш читаний в вихідному виводі.

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

Якщо ви експортуєте CSV і електронна пошта нетехнічних користувачів, шестигранний номер є більш пізнаваним. Якщо ви є космічно-навчанням (мобільний додаток з локальним кешем), base64url або base58 зберігає пропускну здатність. Мистецтво ToolAcre генератор вихідного канонічного 36-характеризуйте будь-яке дійсне уявлення перед форматом перевірки. Враховуючи результати діяльності, коли кодування або декодування мільйонів УУД. Хексадекмо кодування простий: конвертувати кожнубайт в два символи в O(1) час за байтом. Випадковий однаково простий. Base64 кодування і декодування використання таблиці для пошуку і є дещо повільним (грубо 2– 3x повільніше, ніж шестигранний струм, залежно від апаратного та виконання. Base58 значно сповільнює, оскільки це важливо для перетворення бази та вимагає модульної арифмететичної.

Що це не охоплює — вибір стовпців бази даних, таких як рідні типи уміських двосторонніх ((-ів)16), покриті окремо

Якщо ваша система зашифровує або декодує UUIDs в гарячій петлі (генерація високочастотного ідентифікатора, обсяг експорту), шістнадцятковий швидше. Якщо кодування відбувається нечасто і 14-Ощадна економія, base64url є розумним торгово-офф. Мистецтво ToolAcre виводить генератор шістнадцяткового, тому ви отримуєте перевагу продуктивності без використання. Порівняння манетики, що відрізняються кодуванням. Хокадекмоло УУЇД може бути у порівнянні з рядками: 550e8400-e29b-41d4-a716-446655440000 < 550e8400-e29b-41d4-a716-446655440001 (лексикографічні роботи по порівняння). Бінарні UUIDs можуть бути порівнюються як байти: порівняння байтів є такими ж, як і нумеричне порівняння. Base64url і base58 закодовано UUIDs, однак, не зберігайте нумеричне замовлення в лексикографічному рядку порівняння. Якщо ваша система спирається на лексико-сортування УУД (на дивно поширений шаблон для індексів будівель або базових ключів), ви повинні використовувати шестигранний, бінарний або сортовий UUID варіант (в6 або в7).

Поруч: зберігати канонічну форму на кордонах — ToolAcre виходи генератора стандарт 36-character UUIDs і його перевірка приймає рядки в цій формі

Мистецтво ToolAcre генератор в даний час виробляє v4 UUIDs, які не сортуються за допомогою замовлення кодування. Взаємозабезпечення вимагає стандартизації на одному кодуванні. Система, яка приймає UUIDs в шістках, base64, і base58 одночасно повинна нормалізувати всі вхідні дані до канонічної форми перед обробкою. Це можливо, але додає складності. Зовнішні API або бази даних можуть вимагати конкретного кодування: деякі API очікують відірвати: випромінюють шістнадцятий, інші очікують, що непристойний шісточок, все ще інші очікують base64url. Документація системи UUID визначення коду в режимі очікування API контракти. Мистецтво ToolAcre генератор завжди виводить канонічний шіст; якщо вам потрібні інші коди, виконайте перетворення явно і документ, що торгує (простір, продуктивність, читабельність, сортування) до команди.