Зашифровать PDF паролем и снять защиту можно без Adobe Acrobat: в Ubuntu для этого удобен qpdf. Ниже – установка, рабочие команды шифрования и расшифровки, проверка статуса и типичные права (печать, копирование, изменение).
Зачем шифровать PDF
- ограничить открытие файла user-паролем;
- задать owner-пароль и права: печать, копирование текста, правка;
- передать документ так, чтобы без пароля его нельзя было просто открыть в просмотрщике.
Важно: PDF-шифрование – это защита на уровне формата, а не «военная» криптография для любых сценариев. Слабые пароли и 40-битный RC4 не стоит считать надёжными. Для новых файлов лучше AES и нормальная длина ключа.
Установка qpdf в Ubuntu
sudo apt-get update sudo apt-get install qpdf qpdf --version
Пакет есть и в других дистрибутивах; на Fedora – dnf install qpdf. Исходники и релизы: github.com/qpdf/qpdf.
Шифрование PDF
Базовый шаблон (user-пароль, owner-пароль, длина ключа, затем входной и выходной файл). После параметров шифрования обязателен разделитель --:
qpdf --encrypt USER_PASS OWNER_PASS 256 -- input.pdf output-encrypted.pdf
Пример с ограничением прав (без печати и извлечения текста; точный набор флагов зависит от версии qpdf, смотрите qpdf --help=encryption):
qpdf --encrypt USER_PASS OWNER_PASS 256 -- \ print=none modify=none extract=n \ -- input.pdf output-encrypted.pdf
Коротко по полям:
- USER_PASS – пароль для открытия документа;
- OWNER_PASS – пароль владельца (снятие ограничений / полный доступ в совместимых ридерах);
- 40 / 128 / 256 – длина ключа; для AES используйте 128 или 256 (в актуальных qpdf 256 обычно подразумевает AES).
Не используйте один и тот же простой пароль для user и owner, если ограничения прав для вас важны: часть просмотрщиков обходит permissions при известном owner-пароле или через сторонние утилиты.
Проверка, что файл зашифрован
qpdf --show-encryption output-encrypted.pdf
В выводе будут алгоритм, наличие user/owner password и права. Если шифрования нет, qpdf прямо об этом напишет.
Расшифровка PDF
Снять защиту (нужен корректный пароль):
qpdf --password=USER_PASS --decrypt input-encrypted.pdf output-plain.pdf
Если пароль неверный, команда завершится с ошибкой. После успешного decrypt файл должен открываться без запроса пароля.
Полезные замечания
- qpdf умеет и многое другое: линейная оптимизация, разбор PDF, починка битых файлов. Шифрование – только одна ветка CLI.
- Пароли в истории shell остаются в
~/.bash_history. Для чувствительных документов лучше не светить секреты в командной строке на shared-хосте. - Перед массовой обработкой прогоните команды на копии файла.
- Альтернативы: pdftk, Ghostscript, коммерческие редакторы. qpdf удобен тем, что лёгкий и ставится одной командой из репозитория.
Минимальный рабочий цикл: apt install qpdf → --encrypt ... 256 -- in out → --show-encryption → при необходимости --password=... --decrypt.