Зашифровать PDF с помощью Go
Contents
[
Hide
]
Зашифровать PDF‑файл, используя using пароль пользователя или владельца
Чтобы легко и надёжно зашифровать документы, вы можете использовать Aspose.PDF for Go via C++.
- userPassword - устанавливается для открытия PDF. Acrobat/Reader предложит пользователю ввести пароль пользователя. Если он неверный, документ не откроется.
- ownerPassword- устанавливается для контроля разрешений, такие как печать, редактирование, извлечение, комментирование и т.д. Acrobat/Reader будет запрещать эти действия в зависимости от настроек разрешений. Acrobat потребует этот пароль, если вы хотите установить/изменить разрешения.
PDF защищён пользовательским и владельским паролями, настроенными с определёнными разрешениями доступа, и зашифрован с использованием алгоритма AES-128 с безопасностью, совместимой с PDF 2.0–compatible security. Зашифрованный документ затем сохраняется на диск.
- Создайте новый PDF‑документ.
- Зашифруйте PDF‑документ с помощью метода encrypt.
- Укажите пароль пользователя, чтобы ограничить открытие документа.
- Укажите пароль владельца для управления разрешениями.
- Определите разрешённые действия, используя битовый флаг разрешений.
- Выберите AES-128 в качестве алгоритма шифрования.
- Включите шифрование PDF 2.0 для обеспечения современной безопасности.
- Сохраните защищённый документ, используя 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)
}
}