Ubuntu: шифрование и расшифровка PDF с помощью qpdf

Зашифровать 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
Параметры шифрования qpdf

Коротко по полям:

  • 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 в терминале

Полезные замечания

  • qpdf умеет и многое другое: линейная оптимизация, разбор PDF, починка битых файлов. Шифрование – только одна ветка CLI.
  • Пароли в истории shell остаются в ~/.bash_history. Для чувствительных документов лучше не светить секреты в командной строке на shared-хосте.
  • Перед массовой обработкой прогоните команды на копии файла.
  • Альтернативы: pdftk, Ghostscript, коммерческие редакторы. qpdf удобен тем, что лёгкий и ставится одной командой из репозитория.

Минимальный рабочий цикл: apt install qpdf--encrypt ... 256 -- in out--show-encryption → при необходимости --password=... --decrypt.

Источники и ссылки


Комментарии загружаются…