Tech Help

Base64 — це не шифрування: що воно робить насправді

Base64 — кодування, не шифрування. Чому воно не ховає паролі, чому росте розмір і як декодувати.

Коротка відповідь

Base64 — кодування, не шифрування. Воно перетворює двійкові дані на текстову форму, яку текстові системи можуть зберігати чи надсилати.

Хто має текст Base64, зазвичай може його декодувати. Пароль чи секретний ключ не потрібні.

Не використовуйте Base64, щоб захищати паролі, ключі API, токени доступу, приватні повідомлення чи інші секрети. Це засіб представлення, не механізм безпеки.

Якщо рядок виглядає кашею, це не означає, що він зашифрований. Base64 змінює лише те, як байти записуються текстом.

Що Base64 робить насправді?

Base64 кодує двійкові дані обмеженим набором ASCII: A–Z, a–z, 0–9, + і /. Може з’явитися доповнення =, щоб довжина виходу була кратною 4. Доповнення є не завжди: короткі входи можуть дати один чи два =, а деякі формати його пропускають.

Hello

Hello

Base64

SGVsbG8=

Декодуйте SGVsbG8= — знову отримаєте Hello. Це коло не потребує ключа.

  • Вихідні дані
  • Hello
  • Кодувати Base64
  • SGVsbG8=
  • Декодувати Base64
  • Hello
Base64 оборотне декодуванням. Хто має текст, зазвичай може це зробити.

Base64 і шифрування: у чому різниця?

Base64 потрібне для представлення й сумісності. Воно не ховає вміст. Шифрування потрібне для конфіденційності й використовує криптографічний ключовий матеріал. Декодування Base64 — не розшифрування. Системи з відкритим ключем теж використовують ключі; кажіть «відповідний криптографічний ключ», а не «один спільний секрет на будь-який вид шифрування». Хешування — третя ідея: дайджест, не оборотне кодування.

  • Кодування
  • Немає секретного ключа
  • Обернути може будь-хто
  • Шифрування
  • Криптографічний захист
  • Щоб розшифрувати, потрібен правильний ключ
Кодування змінює представлення. Шифрування прагне зберегти вміст у таємниці.

Три різні завдання:

Метод Головна мета Потрібен секрет
Base64 Кодувати дані як текст Ні
Шифрування Захистити конфіденційність Так / ключовий матеріал
Хешування Односторонній дайджест Без розшифрування

Чи безпечний Base64?

Само по собі Base64 не дає конфіденційності. Текст може здаватися непрозорим, але це не функція безпеки. Звичайний декодер відновлює байти. Це не означає, що «Base64 небезпечний» як технологія. Це звичайне кодування. Це не механізм безпеки. Безпека залежить від навколишньої системи й контролю.

Чи можна сховати пароль або ключ API в Base64?

Ні, не як захист. Кодування пароля, ключа API, токена доступу чи приватних даних у Base64 їх не захищає. Хто отримає закодований рядок, зазвичай зможе декодувати. Використовуйте справжнє зберігання секретів і шифрування, коли важлива конфіденційність.

Навіщо Base64, якщо це не шифрування?

Системи, що чекають текст, часто не можуть нести сирі двійкові дані. Base64 використовують, щоб представити двійкове в текстових форматах, вбудувати невеликі двійкові ресурси, провести байти через текстові канали, зібрати Data URL, з’явитися в деяких контекстах пошти/MIME і заповнити корисне навантаження API, коли схема просить Base64. API не використовують Base64 «заради безпеки». Вони використовують його заради сумісності.

Чому Base64 збільшує дані?

Стандартний Base64 з доповненням відображає 3 вхідні байти в 4 символи. Довжина дорівнює 4 × ceil(n / 3), де n — число вхідних байтів. Три байти стають 4 символами; шість — 8. Це приблизно на 33% більше — близько третини — для великого сирого корисного навантаження. Малі входи через доповнення можуть виглядати інакше: один байт стає QQ== (4 символи). Лапки JSON, префікс Data URL, стиснення чи додаткове транспортне кодування можуть ще змінити збережений чи надісланий розмір. Base64 не стискає дані.

Що таке Base64URL?

Base64URL — безпечний для URL і імен файлів варіант того самого кодування, не шифрування. + стає -, / стає _, а доповнення часто пропускають. Кодування Base64 може кодувати й декодувати стандартний Base64 і Base64URL. Правила доповнення залежать від специфікації. Цей інструмент не декодер JWT.

Чи можна кодувати зображення й файли в Base64?

Так. Зображення, PDF та інші двійкові файли можна перетворити на текстове представлення Base64. Base64 ці файли не стискає. Закодований текст зазвичай більший за сирі байти.

Що таке Data URL з Base64?

Data URL може зібрати тип носія, мітку кодування й закодовані байти в одному рядку:

data:image/png;base64,...

Це зручно для маленьких ресурсів. Класти великий файл у Data URL не завжди гарна ідея: рядок росте, сторінки можуть гальмувати. Вважайте це компромісом, не значенням за замовчуванням.

Кодування, шифрування і хешування

Кодування (включно з Base64) потрібне для представлення і оборотне без секрету. Шифрування потрібне для конфіденційності й використовує криптографічний ключовий матеріал. Хешування дає дайджест, зазвичай задуманий як односторонній. Довжина виходу залежить від алгоритму: SHA-256 і SHA-512 різного розміру. Згенерувати хеш може показати ці дайджести; він не шифрує і не замінює Base64.

Часті помилки з Base64

Вважати Base64 шифруванням
Воно змінює лише те, як байти виглядають текстом.

Зберігати секрети як звичайний Base64
Закодоване значення може декодувати будь-хто, хто його має.

Думати, що Base64 стискає дані
Не стискає. Текстова форма зазвичай більша.

Забувати про ріст розміру
Закладіть приблизно третину зверху на великих сирих навантаженнях.

Плутати Base64 з Base64URL
Абетки різні. Декодер може відхилити невірний варіант.

Декодувати з невірним кодуванням символів
Base64 відновлює байти. Тексту все одно потрібне відповідне кодування, зазвичай UTF-8.

Вважати, що = завжди є
Доповнення використовують, коли треба. У частини рядків його немає.

Чому текст Unicode може ламати Base64?

Base64 працює з байтами, не з символами. Текст спочатку треба перетворити на байти — зазвичай UTF-8. Корейська, японська, арабська й емодзі потребують цього кроку. Браузерний btoa() на рядку Unicode може не спрацювати. Кодування Base64 кодує байти UTF-8, тож такий текст проходить туди й назад. Якщо декодувати невірним charset, Base64 може бути вірним, а літери все одно виглядати неправильно.

Це не замок

Base64 не дає конфіденційності. Хто має закодоване значення, зазвичай може його декодувати. Не вважайте кашоподібний текст захищеним секретом.

Кодуйте або декодуйте Base64 в браузері

NEXNARA Кодування Base64 перетворює текст UTF-8 і файли локально.

Можна кодувати або декодувати стандартний Base64 і Base64URL, перетворити файл на сирий Base64 чи Data URL і повернути Base64 чи Data URL у завантаження. Невірний ввід відхиляється, а не валить вкладку. Пробіли ігноруються; відсутнє доповнення доповнюється.

Файли понад 10 MB можуть сповільнити вкладку. Файли понад 32 MB у браузері не обробляються.

Сама обробка Base64 йде в браузері. Текст чи файл не надсилаються на сервер NEXNARA в цьому інструменті. Реклама й інші функції сайту й надалі використовують мережу; це окремо від обробки.

Потрібно закодувати чи декодувати Base64? Відкрийте Кодування Base64 і вставте текст або перетягніть файл.

FAQ

Base64 — це шифрування?

Ні. Base64 — кодування. Воно змінює представлення. Воно не захищає конфіденційність.

Чи безпечний Base64?

Base64 не механізм безпеки. Це звичайне кодування. Хто має текст, зазвичай може його декодувати. Безпека залежить від решти системи.

Чи можна декодувати Base64 без пароля?

Так. Достатньо стандартного декодера. Самому Base64 не потрібні пароль чи секретний ключ.

Чому Base64 збільшує розмір файлу?

Кожні 3 байти стають 4 символами в стандартному Base64 з доповненням (довжина 4 × ceil(n / 3)). Це приблизно на 33% більше для великого сирого навантаження. Доповнення може змінити частку на крихітних входах.

У чому різниця між Base64 і Base64URL?

Base64URL використовує - і _ замість + і / і часто пропускає доповнення =. Обидва — кодування. Кодування Base64 підтримує обидві абетки.

Чи можна кодувати зображення й файли в Base64?

Так. Результат — текст, не менший файл. Використовуйте режим файлу в Кодування Base64 для сирого Base64 або Data URL. Файл лишається в браузері.

Tech Help

Чому Base64 збільшує файли?

Base64 зазвичай робить двійкові дані приблизно на третину більшими. Побачте структуру з 3 байтів у 4 символи, доповнення, додаток Data URL і коли цей розмір вартий того.

Tech Help

JPG проти PNG для знімків екрана: який менший?

Обирайте JPG або PNG для знімка за вмістом: UI і текст часто лишаються чіткішими як PNG; кадри, багаті на світлину, можуть бути меншими як JPEG.

Tech Help

Чому JSON.parse каже "Unexpected token"?

JSON.parse кидає Unexpected token, коли текст не є чинним JSON. Налагоджуйте одинарні лапки, кінцеві коми, HTML-відповіді й позицію помилки.

Tech Help

Як зменшити розмір файлу зображення, не зробивши його розмитим

Зменште розмір файлу світлини й зображення, зберігаючи прийнятну візуальну якість. Спершу змініть надмірні розміри, потім стисніть помірно, потім оберіть доречний формат.

Tech Help

Unix Timestamp у дату: секунди, мілісекунди й UTC пояснено

Перетворіть Unix timestamp на дату. Секунди проти мілісекунд, UTC проти місцевого часу, ISO 8601 і як повернути дату в epoch-час.