PDF 文件广泛用于存储和共享敏感信息,从财务报表到法律文件。但是,这些文件可能容易受到未经授权的访问和编辑,这就是为什么加密和密码保护 PDF 对维护其安全至关重要。在这篇博文中,我们将探索如何使用基于 Python 的 REST API 来加密和密码保护 PDF 文件。按照本指南中概述的分步说明,您将能够为您的 PDF 文件添加额外的安全层,并确保它们免受窥探。因此,无论您是需要保护机密商业文档还是个人文件,请继续阅读以了解如何轻松加密、保护和保护您的 PDF 文件。

用于保护 PDF 的 REST API

Aspose.PDF Cloud SDK for Python 是一款功能强大的工具,可让您轻松地为 PDF 文件添加密码保护。只需几行代码,您就可以加密您的 PDF 文件并限制对授权个人的访问。 SDK提供多种加密算法可供选择,包括40位RC4、128位RC4、128位AES、256位AES。

现在,为了开始使用 Python SDK,第一步是安装它。它可以通过 PIPGitHub 存储库下载。所以请在终端/命令提示符下执行以下命令,在系统上安装最新版本的SDK。

 pip install asposepdfcloud

客户凭证

安装后,下一个主要步骤是在 Aspose.Cloud dashboard 上免费订阅我们的云服务。只需单击 创建新帐户 按钮并提供所需信息,即可使用 GitHub 或 Google 帐户进行注册。然后使用新订阅的帐户登录并获取您的客户凭证。

客户凭证

图 2:- Aspose.Cloud 仪表板上的客户端凭证。

使用 Python 加密 PDF

API 允许您设置两种类型的密码,即文档打开密码(用户密码)和权限密码(所有者密码)。

文档打开密码

文档打开密码(也称为用户密码)需要用户键入密码才能打开 PDF。

权限密码

更改权限设置需要权限密码(也称为主/所有者密码)。使用权限密码,您可以限制打印、编辑和复制 PDF 中的内容。需要此密码才能更改您已经应用的限制。

如果 PDF 使用两种类型的密码进行保护,则可以使用任何一种密码打开它。

另外请注意,API 接受 Base64 编码格式的所有者和用户密码。在以下代码片段中,指定了所有者密码 (b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm) 和用户密码 (dXNlciAkXlBhc3N3b3JkISY=)。请按照以下步骤使用 Python 代码片段加密 PDF 文件。

  • 创建 ApiClient 类的实例,同时提供客户端 ID 和客户端密码作为参数
  • 其次,创建一个 PdfApi 类的实例,它将 ApiClient 对象作为输入参数
  • 现在调用 PdfApi 类的 postencryptdocumentinstorage(..) 方法,同时传递输入 PDF 文件的名称、用户和所有者密码(采用 Base64 编码)和加密算法作为参数。

就是这样!仅用几行代码,我们就了解了使用 Aspose.PDF Cloud SDK for Python 对 PDF 文件进行密码保护的步骤。

def encrypt():
    try:
        #Client credentials
        client_secret = "d34641f4ff6bcc96e3a0ab6ac69768b2"
        client_id = "8e2b082f-1f74-4bc0-b454-5f68457d1c97"

        #initialize PdfApi client instance using client credetials
        pdf_api_client = asposepdfcloud.api_client.ApiClient(client_secret, client_id)

        # 在将 PdfApiClient 作为参数传递时创建 PdfApi 实例
        pdf_api = PdfApi(pdf_api_client)

        #input PDF file name
        input_file = 'image-based-pdf-sample.pdf'

        # 调用API加密文档
        response = pdf_api.post_encrypt_document_in_storage(name=input_file,user_password='dXNlciAkXlBhc3N3b3JkISY=',owner_password='b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm',crypto_algorithm='AESX128')

        # 在控制台打印成功消息(可选)
        print('PDF encrypted successfully !')    
    except ApiException as e:
        print("Exception while calling PdfApi: {0}".format(e))
        print("Code:" + str(e.code))
        print("Message:" + e.message)

请注意,您可以在 PDF 加密过程中使用任一加密算法值

名称 说明
RC4x40 密钥长度为 40 的 RC4。
RC4x128 密钥长度为 128 的 RC4。
AESx128 密钥长度为 128 的 AES。
AESx256 密钥长度为 256 的 AES。

上例中使用的输入 PDF 文件可以从 awesomeTable.pdf 下载。

使用 cURL 命令加密 PDF

还可以在任何平台上通过 cURL 命令访问 REST API。我们可以使用命令提示符/终端窗口来执行 cURL 命令。由于Aspose.PDF Cloud也是按照REST架构开发的,所以我们也可以使用cURL命令对PDF文件进行加密。但在进一步进行之前,我们需要根据您在 Aspose.Cloud 仪表板上指定的个人客户端凭据生成一个 JSON Web 令牌 (JWT)。这是强制性的,因为我们的 API 仅供注册用户访问。请执行以下命令生成 JWT 令牌。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bbf94a2c-6d7e-4020-b4d2-b9809741374e&client_secret=1c9379bb7d701c26cc87e741a29987bb" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

现在,一旦我们有了 JWT 令牌,我们需要执行以下命令来加密 PDF 文档。

curl -v -X POST "https://api.aspose.cloud/v3.0/pdf/awesomeTable.pdf/encrypt?userPassword=dXNlciAkXlBhc3N3b3JkISY%3D&ownerPassword=b3duZXJcLy8%2FICQxMl5QYXNzd29yZCEm&cryptoAlgorithm=AESx128&permissionsFlags=AssembleDocument&usePdf20=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

结论

总之,使用 REST API 加密 PDF 文件是确保重要文档安全和隐私的快速有效方法。无论您是需要锁定 PDF 以防止编辑还是添加密码保护,这些方法都提供了一种既方便又安全的便捷解决方案。按照这篇博文中概述的步骤,您可以轻松保护 PDF 文件,并确保您的宝贵信息受到保护。

请注意,我们的云 SDK 是根据 MIT 许可证构建的,因此您可以从 GitHub 下载完整的代码片段。此外,我们强烈建议浏览 开发人员指南 以了解有关 API 其他令人兴奋的功能的更多信息。

最后,如果您在使用 API 时遇到任何问题或有任何相关疑问,请随时通过免费客户支持论坛与我们联系。

相关文章

我们还建议您阅读以下文章以了解更多信息