Шпаргалка по кодированию и декодированию Base64: примеры команд для Windows, Linux и Mac
Кодирование и декодирование файлов в Base64 на Windows, Linux и Mac.
Это шпаргалка показывает, как кодировать и декодировать файлы и строки в Base64 из командной строки на Windows, Linux и macOS — без необходимости установки дополнительных инструментов.

Это руководство является частью Инструменты разработчика: Полное руководство по современным рабочим процессам.
Base64 преобразует бинарные данные в ASCII-текст, используя 64 символа (A–Z, a–z, 0–9, +, /). Он широко используется для кодирования учетных данных в HTTP Basic Auth, полезной нагрузки JWT (см. Декодирование и вывод токена JWT), секретов Kubernetes, URI данных в HTML/CSS, а также для внедрения бинарных данных в JSON или переменные окружения. Использование командной строки позволяет хранить конфиденциальные данные локально и автоматизировать процессы в конвейерах CI/CD.
Кодирование и декодирование Base64 в Windows
В Windows нет встроенной команды base64, но вы можете использовать встроенные инструменты.
Использование командной строки с Certutil
-
Откройте командную строку.
-
Кодирование файла в Base64:
certutil -encode input.bin output.b64Замените
input.binна путь к вашему файлу, аoutput.b64— на желаемое имя выходного файла. -
Чтобы вывести Base64 в консоль без сохранения временного файла:
certutil -encode input.bin tmp.b64 && findstr /v /c:- tmp.b64 && del tmp.b64Команда
findstr /v /c:-удаляет строки-----BEGIN CERTIFICATE-----и-----END CERTIFICATE-----, добавляемые certutil.
Декодирование Base64 в Windows (Certutil)
certutil -decode encoded.b64 decoded.bin
Кодирование и декодирование с помощью PowerShell
Кодирование файла:
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\file.bin"))
Кодирование строки (UTF-8):
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Hello, World!"))
# Вывод: SGVsbG8sIFdvcmxkIQ==
Декодирование Base64 в строку:
[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("SGVsbG8sIFdvcmxkIQ=="))
# Вывод: Hello, World!
Декодирование Base64 в файл:
[System.IO.File]::WriteAllBytes("decoded.bin", [Convert]::FromBase64String((Get-Content encoded.b64 -Raw)))
Эти методы работают без установки дополнительного программного обеспечения. Для получения更多信息 об автоматизации оболочки см. Шпаргалку по PowerShell.
Кодирование и декодирование Base64 в Linux
Команда base64 предустановлена на большинстве дистрибутивов Linux (GNU coreutils).
Базовый синтаксис
base64 [ОПЦИИ] [ФАЙЛ]
Если файл не указан или указан как -, данные читаются из стандартного ввода.
Кодирование файла в Base64
base64 input_file > output_file
Пример:
base64 myfile.txt > encoded.txt
Чтобы вывести закодированное содержимое в терминал:
base64 myfile.txt
Кодирование строки в Base64
echo -n "Hello, World!" | base64
# Вывод: SGVsbG8sIFdvcmxkIQ==
Используйте -n с echo, чтобы избежать добавления конца строки. Для декодирования строк в JWT см. Декодирование и вывод токена JWT.
Отключение переноса строк (-w 0)
По умолчанию base64 переносит вывод каждые 76 символов. Для использования в JSON, переменных окружения, URL или функции base64encode в Terraform, отключите перенос:
base64 -w 0 input_file > output_file
Декодирование Base64 в Linux
base64 -d encoded_file > decoded_file
# или
base64 --decode encoded_file > decoded_file
Пример:
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# Вывод: Hello, World!
Альтернатива: OpenSSL
echo -n "data" | openssl base64 -e
echo "ZGF0YQ==" | openssl base64 -d
Для получения更多信息 о командных рабочих процессах см. Шпаргалку по Bash, которая охватывает конвейеры и скрипты.
Кодирование и декодирование Base64 в macOS
macOS включает команду base64, аналогичную Linux, но для ввода из файла требуется флаг -i.
Кодирование файла в Base64
base64 -i input_file > output_file
Пример:
base64 -i myfile.txt > encoded.txt
Чтобы вывести в терминал:
base64 -i myfile.txt
Кодирование и копирование в буфер обмена
base64 -i input_file | pbcopy
Декодирование Base64 в macOS
base64 -D -i encoded_file > decoded_file
Флаг -D включает режим декодирования; -i указывает входной файл. Эти команды работают на всех современных версиях macOS начиная с 10.7.
Справочник команды base64 для Linux
Полный вывод справки для инструмента GNU base64:
$ base64 --help
Использование: base64 [ОПЦИИ]... [ФАЙЛ]
Кодирование или декодирование ФАЙЛ (или стандартного ввода) в стандартный вывод.
Без ФАЙЛ или когда ФАЙЛ является -, чтение из стандартного ввода.
Обязательные аргументы для длинных опций обязательны и для коротких опций.
-d, --decode декодировать данные
-i, --ignore-garbage при декодировании игнорировать символы, не входящие в алфавит
-w, --wrap=COLS перенос закодированных строк после COLS символов (по умолчанию 76).
Используйте 0 для отключения переноса строк
--help отобразить эту справку и выйти
--version вывести информацию о версии и выйти
Данные кодируются в соответствии с алфавитом base64, описанным в RFC 4648.
При декодировании входные данные могут содержать переносы строк в дополнение к байтам
формального алфавита base64. Используйте --ignore-garbage для попытки восстановления
от любых других байтов, не входящих в алфавит, в закодированном потоке.
...
Распространенные случаи использования
| Случай использования | Команда / подход |
|---|---|
| Заголовок/полезная нагрузка JWT | Декодирование с помощью base64 -d или jq — см. Декодирование и вывод токена JWT |
| HTTP Basic Auth | echo -n "user:pass" | base64 -w 0 для Authorization: Basic <результат> |
| Секрет Kubernetes | kubectl create secret generic mysecret --from-literal=key=$(base64 -w 0 file.bin) |
| cURL с Basic Auth | Используйте -u user:pass или -H "Authorization: Basic $(echo -n user:pass | base64 -w 0)" — см. Шпаргалку по cURL |
| Data URI в HTML | data:image/png;base64,$(base64 -w 0 image.png) |