加密 PDF 文件

加密是一种著名且可靠的保护 PDF 文档内容的方法。文档加密后,其内容将变得不可读,只有授权用户才能解密文档以获取内容的访问权限。当您使用密码保护文档时,输入正确密码的人可以访问文件或文件夹。更强大的安全方法是加密,常见类型是 128 位密钥或 256 位 AES 加密。请注意,加密会将文档内容转换为不可读的密文。要解密文档,授权用户需要一个密钥,通常是密码或数字证书。在本文中,我们将讨论如何使用 Java 云 SDK 加密和解密 PDF 文件的详细信息。

在这篇博客中,我们将讨论使用 Java REST API 加密和解密 PDF 文档的步骤和细节。

Java REST API

Aspose.PDF Cloud SDK for Java 是 Aspose.PDF Cloud 的包装器,它使 Java 程序员能够充分利用我们 Cloud API 中当前提供的功能。因此,您可以在 Java 代码中创建、编辑和转换 PDF 文件为各种 支持的文档格式

安装

要使用 SDK,第一步是将其安装在您的系统上。Cloud SDK 可通过 MavenGitHub 下载。现在在您的 pom.xml 文件中添加以下详细信息以下载并在 Maven 构建项目中使用 Aspose.Pdf.jar。

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

我们还建议您访问以下链接以获取有关如何安装 Aspose.Cloud SDKs的详细信息。

免费订阅云仪表板

Aspose.PDF Cloud SDK For Java 是一款用于 PDF 文件处理的开源免费云 SDK。当我们提到免费时,这意味着 SDK 的完整源代码可在 GitHub 存储库中下载。因此,您可以根据需要修改其代码。但是,为了确保数据的机密性和完整性,云 API 仅供授权人员访问,并且他们只能访问其特定的云存储。

因此,您首先需要访问 Aspose.Cloud 仪表板,如果您有 GitHub 或 Google 帐户,只需注册即可。否则,请单击 创建新帐户 按钮并提供所需信息。

使用 cURL 命令加密 PDF 文件

cURL 命令是访问 REST API 最简单、最酷的方法之一。让我们来讨论一下如何使用 cURL 命令添加不同的注释。因此,为了使用 cURL 命令,我们需要首先生成 JWT 访问授权令牌。JSON Web Token (JWT) 基于客户端 ID 和客户端密钥详细信息,它们是针对每个客户生成的唯一密钥。因此,使用您的凭据登录 Aspose.Cloud 仪表板,从仪表板展开应用程序部分,向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

在继续之前,请注意,当我们加密 PDF 文件时,我们设置了用户和所有者密码。

文档打开密码

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

权限密码

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

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

请注意,API 接受 Base64 编码格式的所有者和用户密码。在以下 cURL 命令中,指定了所有者密码 (b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm) 和用户密码 (dXNlciAkXlBhc3N3b3JkISY=)。

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

使用 Java 加密 PDF 文件

我们不只是简单地为 PDF 文件添加密码保护,而是使用更强大的安全方法——加密。Java REST API 可让您选择以下加密方法之一,将文档内容转换为不可读的密文。

| 名称 | 描述 |

| ———— | ———————– |

| RC4x40 | RC4,密钥长度为 40。|

| RC4x128 | RC4,密钥长度为 128。|

| AESx128 | 密钥长度为 128 的 AES。|

| AESx256 | 密钥长度为 256 的 AES。|

使用以下代码片段将用户密码和所有者密码添加到云存储上已有的 PDF 文件。

  • 第一步是创建一个 PdfApi 实例,同时传递 clientID 和 clientSecret 详细信息作为参数。
  • 使用 PdfApi 的 uploadFile(…) 方法将 PDF 文件上传到云存储。
  • 最后调用 PdfApi 的 postEncryptDocumentInStorage(…) 方法,该方法接受输入的 PDF 文件名、用户和所有者密码以及 CryptoAlgorithm 枚举的值作为参数。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// createPdfApi 实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// 输入PDF文档
String name = "PdfWithTable.pdf";	        
			   
// 从本地系统加载文件
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// 将文件上传至云存储
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// base64 编码的用户和所有者密码
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&
String ownerPasswordBase64encoded = "b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm"; //owner\//? $12^Password!&

// 调用API加密PDF
AsposeResponse response  = pdfApi.postEncryptDocumentInStorage(name, userPasswordBase64encoded, ownerPasswordBase64encoded,
			                CryptoAlgorithm.AESX128.getValue(), null, null, null, null);
// 在控制台中打印 API 响应
System.out.println(response);

当您尝试打开生成的文件时,会出现提供密码详细信息的提示。

使用 cURL 命令解密 PDF 文件

cURL 命令还可用于解密现有的已编码 PDF 文档。在下面给出的示例中,访问了 PostDecryptDocumentInStorage API,该 API 将密码详细信息作为参数。

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/decrypt?password=dXNlciAkXlBhc3N3b3JkISY%3D" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

使用 Java 解密 PDF 文件

为了使用 Java 解密 PDF 文件,请按照以下步骤操作

  • 创建 PdfApi 实例并传递 clientSecret 和 clientID 作为参数。
  • 创建定义输入 PDF 文件的字符串对象。
  • 使用 PdfApi 类的 uploadFile(….) 方法将文件上传到云存储。
  • 最后,调用 postDecryptDocumentInStorage(…) 方法,同时输入 PDF 文件名和解密密码作为参数。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// createPdfApi 实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// 输入PDF文档
String name = "PdfWithTable.pdf";	        
			   
// 从本地系统加载文件
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// 将文件上传至云存储
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// base64 编码的用户和所有者密码
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&

// 调用API解密PDF
AsposeResponse response  = pdfApi.postDecryptDocumentInStorage(name, userPasswordBase64encoded, null,null);
// 在控制台中打印 API 响应
System.out.println(response);

上述示例中使用的解密文件可以从PdfWithTable-Encrypted.pdf下载。

结论

在本博客中,我们讨论了如何使用 Java REST API 加密和解密 PDF 文件的步骤。您可以轻松加密源文件并通过互联网共享它们,而不必担心数据被盗或文档被滥用。除了加密功能外,Aspose.PDF Cloud SDK for Java 还提供了大量与 PDF 格式相关的功能。您可以考虑访问以下链接以获取有关 Aspose.PDF Cloud 功能 的更多详细信息。

相关文章

我们还建议您阅读以下博客以获取有关