企评社

Язык подписей интерфейса: Русский. Отзывы о компаниях, сообщения форума и описания инструментов пока доступны только на китайском языке.

Файл в Base64

Файл в Base64 / data URI · Base64 обратно в файл · автоматический предпросмотр картинок

全部在浏览器本地读取与编码,文件不上传、刷新即清空
把文件拖到这里,或点击选择(可多选)
任意类型;只读字节并在本机编码,不上传服务器;单文件 ≤ 20MB

Base64 是怎么膨胀三分之一的

Base64 把每 3 个字节(24 位)切成 4 个 6 位,每个 6 位查表落成一个可打印字符(A–Z、a–z、0–9、+、/),于是二进制变成能塞进 JSON、XML、邮件与 HTML 属性的纯文本。字节数不是 3 的倍数时用 = 补位:余 1 字节补 ==、余 2 字节补 =。所以编码后长度恒为 4 × ⌈字节数 ÷ 3⌉——本页显示的膨胀率是实测字符数 ÷ 原始字节数,并与这个理论值逐字节核对,对不上会明确标出来。

Base64 不是加密,也不是压缩。它只是换字母表:任何人拿到都能一步还原,体积还涨约 1/3。敏感内容请用真正的加密(AES 等),需要变小请用压缩——两件事都不是本页在做的。

data URI 是「前缀 + Base64」。形如 data:image/png;base64,iVBOR…:data: 后面是 MIME 与可选参数(如 ;charset=utf-8),;base64 声明编码方式,逗号之后才是内容。把图片直接写进 HTML 的 src、把字体写进 CSS 用的就是它——代价是体积膨胀且无法被单独缓存。

大文件为什么分块读。编码按约 1MB 一块顺序读取,块长取 3 的整数倍(这样每块都能独立编码、直接拼接,不会在块边界多出补位符),每块编码完立即释放字节。结果是内存里只多出 Base64 文本本身;但文本仍要完整放进页面(约 1.33 倍),所以超过 20MB 请改用命令行工具。

Частые вопросы

Файлы загружаются? Base64 заменит шифрование?

Ничего не загружается. Чтение, кодирование и декодирование идут в браузере - ни байта файла не покидает машину, перезагрузка стирает, в localStorage ничего не пишется. Но знайте: Base64 - кодирование, а не шифрование. Он меняет двоичное на текст, чтобы влезло в JSON, письмо или HTML - любой, кто это получит, в один шаг вернёт оригинал. Для тайны берите настоящее шифрование вроде AES. И объём раздувается примерно на треть - не считайте это сжатием при передаче большого.

Справится с большими файлами? Почему предупреждение о лимите?

20МБ на файл. При кодировании чтение идёт кусками около 1МБ с освобождением после каждого, так что файл не копируется в память целиком несколько раз; но текст Base64 должен лесть на страницу целиком (примерно 1,33 объёма), плюс пределы памяти браузера - для больших файлов используйте командную строку: на Linux и macOS base64 файл > выход.txt, в Windows PowerShell - однострочный вызов Convert на байтах файла. При выборе нескольких файлы обрабатываются по одному, каждая строка списка показывает свой статус.

Что за файл получится при декодировании? Почему расширение угадывается?

Три зацепки по убыванию веса: MIME внутри data URI (data:image/png;base64,... прямо называет тип); двоичная подпись в начале (PNG - 89 50 4E 47, JPEG - FF D8 FF, PDF начинается %PDF, ZIP - PK); если содержимое читается как текст - предлагаем .txt. Когда ни одна не решает, файл получает имя .bin с явной пометкой, что тип по содержимому не вывести: расширение - лишь предложение для имени загрузки, байты не трогаются, переименуйте как надо - и откроется нормально.

Чем это отличается от Base64 на странице преобразования кодировок? Что выбрать?

Страница преобразования кодировок - для мелких текстовых кусочков (текст в Base64, URL-безопасный вариант, снять выравнивание) плюс быстрое копирование одного файла; эта страница - для файлов: пакетный выбор, кусковое чтение больших, исходный объём и коэффициент раздутия, чистый Base64 или форма data URI, и обратное превращение Base64 в скачиваемый файл с распознаванием типа и предпросмотром картинок. Кусок текста - на преобразование кодировок; файлы - особенно картинки, PDF или архивы от десятков КБ - сюда.

Похожие инструменты