Base64 кодування
Закодувати чи розкодувати рядок у Base64
Дані не залишають ваш браузер
Цей інструмент повністю працює на вашому пристрої: обчислення виконує JavaScript у вкладці. Ми не надсилаємо введений текст на сервер, не зберігаємо і не логуємо його. Можете сміливо працювати з робочими даними - і навіть відключити інтернет після завантаження сторінки.
Що таке Base64
Base64 - це спосіб записати довільні двійкові дані звичайними латинськими літерами, цифрами та символами +, / і =. Це не шифрування: рядок не захищено, його розкодує будь-хто за секунду. Base64 вирішує іншу задачу - провести дані через канал, який очікує текст.
Де це потрібно на практиці
- Basic-авторизація в HTTP: заголовок
Authorization: Basicміститьлогін:парольу Base64. - Вкладення в листах: MIME кодує файли саме так, бо SMTP історично текстовий протокол.
- Data URI: маленька картинка, вбудована просто в CSS або HTML.
- JWT: header і payload токена - це Base64URL, лише без доповнення - декодер розбере його на частини.
- APP_KEY у Laravel: ключ шифрування зберігається в
.envякbase64:...(згенерувати).
Особливості, на яких спотикаються
Розмір зростає приблизно на третину. Три байти перетворюються на чотири символи, тож файл на 3 МБ у Base64 займе близько 4 МБ. Тому вбудовувати великі зображення в HTML - погана ідея.
Звичайний Base64 не можна класти в URL. Символи + і / мають в адресі власне значення, а = ламає параметри. Для цього існує варіант base64url, де вони замінені на - та _, а доповнення = відкидається - перемикач вище вмикає саме його.
Кирилиця вимагає уваги. Base64 працює з байтами, а не з символами, тому текст спершу треба перевести в UTF-8. У браузері «голий» btoa() на слові «привіт» просто впаде з помилкою - цей інструмент кодує через TextEncoder, тому українські тексти обробляються коректно.
Приклади в PHP і Laravel
// Базове кодування
$encoded = base64_encode('Привіт, світ');
$decoded = base64_decode($encoded);
// Суворий режим: поверне false на сміттєвих даних замість тихого результату
$decoded = base64_decode($input, strict: true);
if ($decoded === false) {
throw new InvalidArgumentException('Некоректний Base64');
}
// base64url для посилань і токенів
$urlSafe = rtrim(strtr(base64_encode($raw), '+/', '-_'), '=');
// Laravel: збереження завантаженого через API файлу
$binary = base64_decode($request->input('file'), strict: true);
abort_if($binary === false, 422, 'Некоректний файл');
Storage::disk('r2')->put("uploads/{$name}", $binary);
Коли Base64 - неправильний інструмент
Якщо потрібно приховати дані, Base64 не підходить: використовуйте Crypt::encryptString(). Якщо потрібно перевірити цілісність - потрібен HMAC. Якщо потрібно зберігати паролі - тільки bcrypt.