Перевести текст в Base64 и расшифровать обратно: кириллица в UTF-8, Latin-1, URL-safe алфавит, разбивка по 76 символов, файл в Base64 и обратно. Всё считается в браузере.
Base64 решает одну задачу: протащить произвольные байты через канал, который умеет передавать только текст. Так вложения попадают в письмо, картинка — в HTML и CSS как data-URI, ключ подписи — в поле JSON, а двоичное значение — в параметр адреса. Шесть бит на символ выбраны не случайно: 64 знака есть в любой кодировке и не конфликтуют с управляющими символами, поэтому запись переживает и почтовый транспорт со его ограничением на длину строки, и текстовый протокол. Плата за это — размер: каждые три байта превращаются в четыре символа, то есть данные растут примерно на треть, а с выравниванием «=» чуть больше.
Запись неоднозначна в трёх местах, и инструмент даёт их видеть. Кириллица сначала превращается в байты: в UTF-8 русская буква занимает два байта, в Latin-1 не помещается вовсе — и если разобрать такую запись не той кодировкой, получится не ошибка, а осмысленный мусор. Алфавит бывает стандартным и URL-safe: «+» и «/» в адресе значат другое, поэтому их заменяют на «-» и «_», и на входе инструмент понимает оба варианта сразу. Третье — мелочи оформления: выравнивание «=» и разбивка длинной записи по 76 символов. На разборе они необязательны, а на сборке их включают, только если того требует получатель.
Всё происходит в браузере: текст превращается в байты, байты — в символы алфавита и обратно прямо на странице. Ни текст, ни выбранный файл никуда не отправляются, а размер до и после виден сразу — вместе с разницей в процентах, форматом содержимого, узнанным по сигнатуре, и предпросмотром картинки, если в записи лежит изображение. Инструмент работает офлайн, а после закрытия страницы от данных не остаётся ничего.
Вставьте текст в поле «Исходные данные» — результат появится сразу, без кнопок. Направление по умолчанию определяется по виду входа: запись из символов Base64 разбирается, обычный текст кодируется. Если угадывать не нужно, выберите направление вручную в параметрах. Кнопка «Поменять местами» в панели результата переносит готовую запись во вход и меняет направление на обратное — так одна и та же строка проходит путь туда и обратно.
Base64 кодирует байты, а не буквы. Русская буква в UTF-8 занимает два байта, латинская — один, поэтому «Привет» и «Privet» дают разной длины записи. Режим «ASCII / Latin-1» кладёт в каждый байт ровно один символ: он нужен, когда получатель читает байты напрямую или когда запись пришла из старой однобайтовой системы. В этом режиме кириллица не помещается, и инструмент скажет, какой именно символ вышел за предел, — подставить «?» и молча испортить данные хуже, чем показать место.
Стандартный алфавит использует «+» и «/», а в адресе страницы и в имени файла эти символы значат другое: «+» превращается в пробел, «/» делит путь. URL-safe алфавит заменяет их на «-» и «_» — по стандарту RFC 4648 такая запись переживает и адрес, и имя файла. При разборе инструмент принимает оба алфавита одновременно: отдельно угадывать, каким кодировали, не нужно, и переключатель задаёт только то, чем записывать результат.
Ничего: разбор это переживёт. Переносы строк, пробелы и неразрывные пробелы выбрасываются, недостающие знаки «=» дописываются автоматически — так приходит Base64 в письмах и в значениях параметров, где «=» теряется. Выравнивание нужно только при кодировании, и его можно выключить, если получатель лишние знаки не принимает. Разбивка по 76 символов тоже необязательна: она нужна там, где длинную строку читает человек или режет транспорт, а браузер и любая библиотека разбирают запись и без переносов.
По сигнатуре — первым байтам содержимого, а не по имени: у Base64 имени нет. Инструмент узнаёт PNG, JPEG, GIF, PDF и ZIP, показывает название формата и тип MIME, а картинку сразу выводит на страницу. Дальше кнопка «Скачать» отдаёт файл с правильным расширением и типом. Если формат не распознан, содержимое всё равно можно скачать как application/octet-stream — это стандартная отговорка для двоичных данных, о которой получатель только и может узнать, что файл ему незнаком.
Нет. Кодирование, разбор, определение формата и сборка файла выполняются на JavaScript в самой странице: текст и содержимое файла не уходят по сети, не сохраняются и не попадают в логи. Файл читается браузером локально, а ссылка на скачивание собирается из тех же данных прямо на странице. Инструментом можно пользоваться офлайн, и это важно, когда в записи лежит выгрузка с персональными данными или вложение из внутренней системы.
Нет, Base64 ничего не шифрует: это другой способ записи тех же байтов, и любой, у кого есть строка, вернёт исходные данные одной командой. Ни секретности, ни защиты от подмены он не даёт — для этого нужно шифрование, а не перекодировка. Как способ хранения пароля Base64 вреден ещё и тем, что выглядит зашифрованным и усыпляет внимание.