Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас

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.