Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как закодировать и раскодировать Base64

Короткий ответ

btoa() кодирует строку в Base64, atob() раскодирует обратно:

const encoded = btoa('Hello, world');
 
console.log(encoded);
console.log(atob(encoded));

Результат:

SGVsbG8sIHdvcmxk
Hello, world

Любые буквы

btoa() работает только с символами Latin-1. Для другого текста сначала превратите строку в байты через TextEncoder:

const toBase64 = (text) => btoa(String.fromCharCode(...new TextEncoder().encode(text)));
const fromBase64 = (base64) => new TextDecoder().decode(Uint8Array.from(atob(base64), (char) => char.charCodeAt(0)));
 
const encoded = toBase64('Привет 👋');
 
console.log(encoded);
console.log(fromBase64(encoded));

Результат:

0J/RgNC40LLQtdGCIPCfkYs=
Привет 👋

Base64 для URL

Символы +, / и = имеют значение в адресах. Безопасный для URL вариант заменяет их:

const base64url = btoa('subjects?_d').replaceAll('+', '-').replaceAll('/', '_').replace(/=+$/, '');
 
console.log(btoa('subjects?_d'));
console.log(base64url);

Результат:

c3ViamVjdHM/X2Q=
c3ViamVjdHM_X2Q

Частая ошибка

Base64 — не шифрование. Раскодировать его может кто угодно, поэтому прятать так пароли и секреты нельзя:

console.log(atob('cGFzc3dvcmQxMjM='));

Результат:

password123

Функции из этого ответа

  • btoa — Кодирует строку в Base64.
  • atob — Раскодирует строку из Base64.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.