Base64: кодер і декодер
Безкоштовний кодер і декодер Base64 з повною підтримкою UTF-8 та варіантом base64url для URL. Працює у вашому браузері, нічого не завантажується на сервер.
Як користуватися кодером і декодером Base64
- Виберіть, що потрібно зробити: закодувати текст у Base64 чи декодувати Base64 назад у текст.
- Введіть або вставте дані в текстове поле. Літери з діакритикою, кирилиця, інші писемності та емодзі підтримуються повністю.
- Якщо результат потрібен для URL-адреси, імені файлу або токена JWT, увімкніть опцію Безпечний для URL (base64url), щоб отримати варіант base64url.
- Прочитайте результат і скопіюйте його. Якщо ви декодуєте, а вхідні дані не є коректним Base64, інструмент покаже повідомлення про помилку замість нечитабельного набору символів.
Що таке Base64
Base64 – це спосіб подати довільні байти лише за допомогою 64 друкованих символів ASCII: великих літер A–Z, малих літер a–z, цифр 0–9 та двох символів + і /. Символ = використовується як доповнення в кінці. Цей формат існує тому, що багато систем створювали для передавання тексту, а не «сирих» двійкових даних. Тіла електронних листів, заголовки HTTP, документи XML і JSON, а також data-URL очікують символів, які можна скопіювати, записати в журнал і передати без змін.
Алгоритм бере групи по три байти (24 біти) і ділить їх на чотири 6-бітові значення, кожне з яких відповідає одному з 64 символів. Тому результат у Base64 завжди приблизно на 33% більший за вхідні дані: кожні 3 байти перетворюються на 4 символи. Якщо довжина вхідних даних не кратна трьом, додається один або два знаки =, щоб довжина результату була кратна чотирьом. Наприклад, слово Hi кодується як SGk=, а Hello – як SGVsbG8=.
Текст, байти й UTF-8
Base64 кодує байти, а не символи, тому текст спершу потрібно перетворити на байти. Цей інструмент використовує UTF-8 – кодування майже всіх сучасних вебсторінок і API. Тому café перетворюється на Y2Fmw6k=, а емодзі на кшталт 👍 (чотири байти в UTF-8) кодується правильно й декодується назад у той самий емодзі. Багато швидких скриптів, які спираються на старішу функцію браузера btoa(), не працюють з усім, що виходить за межі Latin-1; цей інструмент такого обмеження не має.
Стандартний Base64 і base64url
Стандартний Base64 використовує + і /, які мають особливе значення в URL-адресах і шляхах до файлів. Безпечний для URL варіант, base64url, замінює + на -, а / на _ і зазвичай відкидає доповнення =. Саме цей формат застосовують у JSON Web Token (JWT), у багатьох параметрах OAuth і в сервісах скорочення посилань. Вмикайте опцію Безпечний для URL (base64url), коли потрібен цей формат, і залишайте її вимкненою для вкладень електронної пошти, data-URL або файлів конфігурації, які очікують стандартний Base64.
Base64 – це не шифрування
Це найпоширеніша помилка. Base64 – це кодування: у ньому немає ні ключа, ні секрету, і будь-хто може миттєво відновити початкові дані. Закодувавши пароль, ключ API чи персональні дані в Base64, ви жодним чином їх не захистите. Наприклад, базова автентифікація HTTP передає ім’я:пароль саме в Base64, тому її можна використовувати лише через HTTPS. Якщо потрібна конфіденційність, застосовуйте справжнє шифрування (наприклад, AES) або хешування паролів (наприклад, Argon2 чи bcrypt), а не Base64.
Конфіденційність
Усе кодування й декодування відбувається локально у вашому браузері за допомогою JavaScript. Текст, який ви вводите, ніколи не надсилається на сервер, не зберігається і не записується в журнал, тому ви можете спокійно переглядати токени чи значення конфігурації. Інструмент працює лише з текстом; завантаження файлів він не підтримує.
Поширені запитання
Чому декодований текст схожий на випадкові символи?
Імовірно, рядок Base64 містить двійкові дані, як-от зображення, стиснутий файл або зашифрований вміст, а не текст. Декодування дає коректні байти, але вони не є осмисленим текстом UTF-8. Таке трапляється й тоді, коли початковий текст закодовано в іншій кодовій таблиці, а не в UTF-8.
Чому інструмент каже, що мій Base64 некоректний?
Коректний Base64 містить лише 64 дозволені символи та необов’язкове доповнення =, а його довжина має відповідати групуванню по 4 символи. Типові причини: випадково скопійовані зайві символи, обрізаний рядок або рядок base64url (із - та _), який декодують без увімкненої опції безпечного для URL режиму.
Чи можна закодувати зображення або інші файли?
Ні. Інструмент призначений лише для тексту. Щоб вбудувати зображення в HTML чи CSS, потрібен інструмент, який зчитує «сирі» байти файлу й створює data-URL.
Чи безпечно зберігати паролі в Base64?
Ні. Base64 може декодувати будь-хто за долю секунди. Паролі слід зберігати за допомогою спеціального повільного алгоритму хешування, як-от Argon2, scrypt або bcrypt.
Чим відрізняється Base64 із доповненням і без нього?
Доповнення = лише робить довжину результату кратною чотирьом і не несе жодної інформації. Більшість декодерів можуть відновити дані й без нього. У base64url доповнення зазвичай пропускають, бо = сам по собі є зарезервованим символом в URL.
Схожі інструменти
- Кодування й декодування URL Безкоштовний кодувальник і декодувальник URL. Кодуйте параметри запиту чи повні URL, декодуйте послідовності %XX і обробляйте + як пробіл. Працює в браузері.
- Форматувальник і валідатор JSON Безкоштовний форматувальник і валідатор JSON: форматує, мінімізує та перевіряє JSON у браузері й показує помилки синтаксису з рядком і стовпцем.
- Генератор UUID Безкоштовний генератор UUID версій 4 і 7. Створюйте до 1000 ідентифікаторів одразу, великими літерами чи без дефісів, і копіюйте або завантажуйте як .txt.