Как зашифровать текстовый файл: age, GPG и VeraCrypt

Обновлено:

Текстовый файл удобен, но если в нём есть пароли, клиентские данные или чувствительные заметки, одного HTTPS и облака недостаточно. Ниже — три практических способа шифрования: age, GPG и VeraCrypt.

Сначала определите задачу

Шифрование бывает разным. Полнодисковое шифрование (FileVault, BitLocker, LUKS) защищает устройство целиком, если ноутбук потерян или украден. Шифрование отдельного файла защищает содержимое при хранении в облаке, отправке или на общем диске. VeraCrypt может работать как контейнер для папки или как шифрование диска.

Полезно сразу ответить на три вопроса: от кого защищаемся, где будет лежать шифротекст и что произойдёт при потере ключа. Шифрование не спасает от вредоносного ПО на разблокированном устройстве, скриншотов, слабых паролей и ошибок в правах доступа. Оно также не скрывает имя файла, его размер и время изменения — это метаданные, а не содержимое.

Базовый минимум: полнодисковое шифрование, сложный пароль, двухфакторная аутентификация у облака и резервная копия. Шифрование отдельного файла добавляет второй слой, но не заменяет эти меры.

age: минимализм для одного файла

age — современный инструмент файлового шифрования с простым CLI и небольшим числом настроек. Он использует X25519 для ключей и хорошо подходит для одного файла, который нужно зашифровать паролем или публичным ключом.

Установка: brew install age на macOS, apt install age на Debian/Ubuntu, готовые бинарники — на странице релизов проекта. На Windows удобнее WSL или пакетный менеджер.

age -p -o everything.txt.age everything.txt
age -d -o everything.txt everything.txt.age

Первая команда запросит парольную фразу и создаст everything.txt.age. Вторая расшифрует файл. Для пары ключей:

age-keygen -o age-key.txt
# команда выведет публичный ключ вида age1...
age -r age1... -o everything.txt.age everything.txt
age -d -i age-key.txt -o everything.txt everything.txt.age

Приватный ключ age-key.txt нельзя хранить рядом с шифротекстом. Его стоит положить в менеджер паролей или на офлайн-носитель, а публичный ключ можно передавать другим людям.

Плюсы age: простые команды, современные алгоритмы, мало шансов ошибиться в настройках. Минусы: меньше интеграций, чем у GPG, и вся ответственность за ключи лежит на пользователе.

GPG: совместимость и ключи

GNU Privacy Guard (GPG) — реализация OpenPGP. Он распространён в почте, подписях и корпоративных процессах, умеет симметричное и асимметричное шифрование. Если нужно обмениваться файлами с людьми, у которых уже есть PGP-ключи, GPG остаётся практичным выбором.

Симметричное шифрование с парольной фразой:

gpg --symmetric --cipher-algo AES256 everything.txt
gpg --decrypt everything.txt.gpg > everything.txt

Для текстового представления, которое можно отправить в письме, добавьте --armor. Для шифрования публичным ключом получателя:

gpg --full-generate-key
gpg --encrypt --recipient you@example.com everything.txt
gpg --decrypt everything.txt.gpg > everything.txt

Ключи и их резервные копии — главная сложность. Сохраните приватный ключ и revocation-сертификат, запомните парольную фразу, проверьте восстановление на чистой машине. Экспорт публичного ключа: gpg --export --armor; импорт: gpg --import.

Плюсы GPG: широкая совместимость, подписи, привычная модель публичных ключей. Минусы: сложный интерфейс, риск потерять ключ или пароль, больше настроек. Для нового личного файла age обычно проще; для PGP-экосистемы — GPG.

VeraCrypt: контейнер для папки или диска

VeraCrypt создаёт зашифрованный контейнер или шифрует диск. Внутри контейнера может лежать не один файл, а целая папка: заметки, вложения, архивы. Поддерживаются AES, Serpent и Twofish, ключевые файлы, PIM и скрытые тома.

Базовый сценарий в GUI:

  1. Create Volume → Create an encrypted file container.
  2. Выберите обычный или скрытый том.
  3. Укажите путь и размер контейнера.
  4. Выберите алгоритм шифрования (AES с аппаратным ускорением — практичный выбор по умолчанию).
  5. Задайте пароль и, при необходимости, ключевой файл.
  6. Отформатируйте контейнер, смонтируйте его, скопируйте everything.txt внутрь и размонтируйте.

В командной строке основные операции выглядят так (проверьте veracrypt --help для вашей версии):

veracrypt -t -c /path/container.hc
veracrypt -t /path/container.hc /mnt/vc
veracrypt -t -d /mnt/vc

Для синхронизации кладите в облако только закрытый контейнер. Не синхронизируйте смонтированный том: облачный клиент увидит отдельные файлы и может повредить контейнер при конфликте. Порядок такой: смонтировать локально → изменить файл → размонтировать → дождаться синхронизации контейнера.

Сделайте резервную копию заголовка тома через GUI (Tools → Backup Volume Header) и храните её отдельно. Без заголовка восстановить контейнер значительно сложнее. Если используете скрытый том, включайте защиту скрытого тома при монтировании внешнего, иначе внешние записи могут его повредить.

Плюсы VeraCrypt: сильное шифрование целой папки, скрытые тома, кроссплатформенность. Минусы: контейнер тяжелее файла, размер фиксирован, официальных мобильных клиентов нет, а синхронизация смонтированного тома опасна.

Сравнение

КритерийageGPGVeraCrypt
Что шифруетОдин файлОдин файлКонтейнер, папку или диск
СложностьНизкаяСредняя или высокаяСредняя
КлючиПароль или X25519PGP-ключи или парольПароль, ключевой файл, PIM
Совместная работаЧерез публичный ключЧерез PGP-ключиЧерез общий контейнер
МобильныеОграниченноЕсть PGP-приложенияОфициальных клиентов нет
СинхронизацияШифротекстШифротекстТолько закрытый контейнер
Лучше всего дляЛичного файлаPGP-экосистемы и подписейПапки, архива, диска

Практические сценарии

Частые ошибки

Чек-лист

Если файл синхронизируется между устройствами, сначала настройте безопасную синхронизацию: как синхронизировать один текстовый файл. Если ещё выбираете инструмент для заметок, начните со сравнения OBTF, Notion и Obsidian.

Начните с готового файла. В шаблоне уже есть дата, маркеры и примеры записей.

Скачать starter .txt →