Техподдержка

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. Файл остаётся в браузере.

Техподдержка

Почему Base64 делает файлы больше?

Base64 обычно увеличивает двоичные данные примерно на треть. Смотрите структуру 3 байта → 4 символа, дополнение, лишний размер Data URL и когда этот прирост оправдан.

Техподдержка

JPG vs PNG для скриншотов: какой меньше?

Выбирайте JPG или PNG для скриншотов по содержимому: UI и текст часто остаются чётче как PNG; кадры с большим количеством фото могут быть меньше как JPEG.

Техподдержка

Почему JSON.parse говорит "Unexpected token"?

JSON.parse выбрасывает Unexpected token, когда текст не является допустимым JSON. Разберите одинарные кавычки, запятую в конце, HTML-ответы и позицию ошибки.

Техподдержка

Как уменьшить файл изображения, чтобы оно не стало размытым

Уменьшайте размер фото и изображений, сохраняя приемлемое качество. Сначала уменьшите лишние пиксели, затем умеренно сожмите и выберите подходящий формат.

Техподдержка

Unix Timestamp в дату: секунды, миллисекунды и UTC

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