UTILS.
100% у браузері
🔢

Кодування та декодування Base62

Перетворюйте цілі числа або байтові рядки в компактний URL-безпечний Base62 (0-9A-Za-z) і назад, з підтримкою BigInt та варіантом алфавіту GMP, все у браузері.

— результат з’явиться тут —

Про цей інструмент

Інструмент Base62 кодує числа та байтові рядки в компактний алфавіт із 62 символів 0-9A-Za-z і декодує їх назад. Base62 популярний для коротких ID, URL-слагів та скорочених посилань, оскільки залишається URL-безпечним без символів +, / або =, які використовує Base64. Уся конвертація виконується локально у вашому браузері за допомогою JavaScript BigInt, тож довільно великі значення обчислюються точно й ніщо не завантажується.

Режим цілого числа трактує вхідні дані як ціле число довільної точності (десяткове або hex із префіксом 0x): кодування багаторазово ділить на 62 і додає alphabet[remainder] на початок, а декодування обчислює Σ alphabet.indexOf(ch)·62^position. Байтовий режим трактує вхідні байти (текст UTF-8 або hex) як одне велике число big-endian і застосовує ту саму конвертацію за основою 62, але також зберігає провідні нульові байти в стилі Bitcoin-Base58: кожен провідний байт 0x00 стає одним провідним символом '0', тож перетворення туди-назад є без втрат.

Стандартний алфавіт упорядковує цифри, потім великі літери, потім малі (0-9A-Za-z). Деякі бібліотеки — зокрема побудовані на GMP — упорядковують цифри, малі літери, потім великі (0-9a-zA-Z), що дає інший результат для того самого значення; перемикач алфавіту дозволяє відповідати тому, який використовує ваша система. Виберіть напрямок, режим цілого числа або байтів, формат вхідних байтів і варіант алфавіту.

Поширені запитання

У чому різниця між режимом цілого числа та байтів?
Режим цілого числа перетворює одне число довільної точності (десяткове або 0x-hex) на рядок Base62 і назад на десяткове ціле. Байтовий режим перетворює послідовність байтів (з тексту UTF-8 або hex) як велике число big-endian і зберігає провідні нульові байти як провідні символи-нулі алфавіту, тож двійкові дані перетворюються туди-назад точно.
Чому існує два алфавіти?
Стандартний алфавіт — 0-9A-Za-z (великі літери перед малими). Бібліотеки на основі GMP використовують 0-9a-zA-Z (малі літери перед великими). Те саме значення кодується по-різному в кожному, тож перемикач дозволяє взаємодіяти з тим упорядкуванням, яке очікують ваші інші інструменти.
Наскільки велике число він може обробити?
Будь-якого розміру. Інструмент використовує JavaScript BigInt, тож немає обмеження точності 2^53 — ви можете точно кодувати й декодувати цілі числа та байтові рядки довільної довжини, що суттєво для хешів, UUID та довгих ідентифікаторів.
Як обробляються провідні нулі в байтовому режимі?
Кожен провідний байт 0x00 кодується як один провідний символ-нуль алфавіту (як провідна '1' у Base58). Під час декодування кожен провідний символ-нуль алфавіту відновлює один байт 0x00, тож кодування, а потім декодування повертає точну оригінальну послідовність байтів.

Більше інструментів