Utilia

Base64 кодиране и декодиране

Безплатно Base64 кодиране и декодиране с пълна поддръжка на UTF-8 и вариант base64url. Работи във вашия браузър, нищо не се качва на сървър.

Как да използвате Base64 кодирането и декодирането

  1. Изберете дали искате да кодирате текст в Base64, или да декодирате Base64 обратно в текст.
  2. Въведете или поставете входа в текстовото поле. Поддържат се букви с диакритични знаци, нелатински азбуки (включително кирилица) и емоджита.
  3. Ако резултатът ще се ползва в URL адрес, име на файл или JSON Web Token, включете опцията Безопасен за URL (base64url), за да получите варианта base64url.
  4. Прочетете резултата и го копирайте. Ако декодирате и входът не е валиден 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 параметри и в услугите за съкращаване на връзки. Включете опцията, когато ви трябва този формат, и я оставете изключена за прикачени към имейл файлове, data URL адреси или конфигурационни файлове, които очакват стандартен Base64.

Base64 не е шифроване

Това е най-честото недоразумение. Base64 е кодиране: няма ключ и тайна и всеки може да го обърне начаса. Кодирането на парола, API ключ или лични данни в Base64 не ги защитава по никакъв начин. HTTP Basic удостоверяването например изпраща username:password в 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 адресите.