Зашифровать PDF с помощью Go

Зашифровать PDF‑файл, используя using пароль пользователя или владельца

Чтобы легко и надёжно зашифровать документы, вы можете использовать Aspose.PDF for Go via C++.

  • userPassword - устанавливается для открытия PDF. Acrobat/Reader предложит пользователю ввести пароль пользователя. Если он неверный, документ не откроется.
  • ownerPassword- устанавливается для контроля разрешений, такие как печать, редактирование, извлечение, комментирование и т.д. Acrobat/Reader будет запрещать эти действия в зависимости от настроек разрешений. Acrobat потребует этот пароль, если вы хотите установить/изменить разрешения.

PDF защищён пользовательским и владельским паролями, настроенными с определёнными разрешениями доступа, и зашифрован с использованием алгоритма AES-128 с безопасностью, совместимой с PDF 2.0–compatible security. Зашифрованный документ затем сохраняется на диск.

  1. Создайте новый PDF‑документ.
  2. Зашифруйте PDF‑документ с помощью метода encrypt.
  3. Укажите пароль пользователя, чтобы ограничить открытие документа.
  4. Укажите пароль владельца для управления разрешениями.
  5. Определите разрешённые действия, используя битовый флаг разрешений.
  6. Выберите AES-128 в качестве алгоритма шифрования.
  7. Включите шифрование PDF 2.0 для обеспечения современной безопасности.
  8. Сохраните защищённый документ, используя SaveAs, записывая его в новый файл.

    package main

    import "github.com/aspose-pdf/aspose-pdf-go-cpp"
    import "log"

    func main() {
        // New creates a new PDF-document
        pdf, err := asposepdf.New()
        if err != nil {
            log.Fatal(err)
        }
        // Close() releases allocated resources for PDF-document
        defer pdf.Close()
        // Encrypt(userPassword, ownerPassword, permissions, cryptoAlgorithm, usePdf20) encrypts PDF-document
        err = pdf.Encrypt(
            "userpass",
            "ownerpass",
            asposepdf.PrintDocument|asposepdf.ModifyContent|asposepdf.FillForm,
            asposepdf.AESx128,
            true,
        )
        if err != nil {
            log.Fatal(err)
        }
        // SaveAs(filename string) saves previously opened PDF-document with new filename
        err = pdf.SaveAs("sample_with_password.pdf")
        if err != nil {
            log.Fatal(err)
        }
    }