使用Aspose给PDF加密,免受未经授权的访问和内容篡改

在各种情况下,在利益相关者之间共享之前,PDF文档都是经过加密的。加密使文档免受未经授权的访问和内容篡改的影响。有两种保护PDF文档安全的流行方法-用密码加密PDF或限制用户的访问权限,例如打印,编辑,复制等。

本文演示了如何使用Java加密或解密PDF文档。此外,还将学习如何限制PDF文档中用户的权限。

  • 使用Java加密PDF文件
  • 使用Java解密PDF文件
  • 使用Java更改PDF中的安全权限

目前,Java版Aspose.PDF升级到v20.10版,添加签名,而不考虑pdf页面的旋转,修复XPS转换为PDF错误等诸多bug问题,感兴趣的朋友可点击下载

使用Java加密PDF文件

PDF文档的加密要求您设置一个密码,该密码将用于打开和访问该文档。除此之外,您可以选择以下加密算法之一。

  • 带40位密钥的RC4
  • 带128位密钥的RC4
  • 带有128位密钥的AES
  • 带有256位密钥的AES

以下是使用Aspose.PDF for Java加密PDF文档的步骤。

  • 使用Document类加载PDF文档。
  • 使用Document.encrypt(“ user_password”,“ owner_password”,0,CryptoAlgorithm)方法对PDF进行加密。
  • 使用Document.save(string)方法保存加密的PDF 。

以下代码示例显示了如何使用Java加密PDF文档。

// open document
Document document = new Document("input.pdf");
// encrypt PDF
document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256);
// save updated PDF
document.save("Encrypted_output.pdf");

当打开加密的PDF时,将出现以下对话框。

PDF处理控件Aspose.PDF功能演示:使用Java加密和解密PDF文件

使用Java解密PDF文件

加密的PDF文档的解密需要用户或所有者的密码。以下是使用Aspose.PDF for Java解密PDF文档的步骤。

  • 通过在构造函数中指定密码,使用Document类加载加密的PDF 。
  • 调用 Document.decrypt() 方法解密PDF。
  • 使用Document.save(string)方法保存解密的PDF文档。

以下代码示例显示了如何使用Java解密加密的PDF。

// open document
Document document = new Document("input.pdf", "password");
// decrypt PDF
document.decrypt();
// save updated PDF
document.save("output.pdf");

使用Java更改PDF中的安全权限

可以在加密PDF文档时限制用户的访问权限以执行不同的操作。以下是可以设置的权限。

  • 打印文档 –允许打印文档。
  • 修改内容 –允许修改内容。
  • 提取内容 –允许从文档中复制内容。
  • 修改文本注释 –允许添加或更新文本注释。
  • 填写表格 –允许填写交互式表格字段。
  • 提取具有残疾的内容 –允许提取文本和图形(适用于残疾用户)。
  • 组装文档 –允许插入,旋转或删除页面以及创建书签或缩略图。
  • 打印质量 –允许高分辨率打印文档。

以下是设置或修改PDF文档中的权限的步骤。

  • 使用Document类加载PDF 。
  • 使用DocumentPrivilege类设置权限。
  • 加密PDF并将其保存,就像前面的示例一样。

以下代码示例显示了如何使用Java修改PDF文档中的权限。

Document document = new Document("inputFile.pdf");
try /* JAVA: was using */
{
	DocumentPrivilege documentPrivilege = DocumentPrivilege.getForbidAll();
	documentPrivilege.setAllowScreenReaders(true);
	documentPrivilege.setAllowPrint(true);

	document.encrypt("user", "owner", documentPrivilege, CryptoAlgorithm.AESx128, false);
	document.save("outputFile.pdf");
} finally {
	if (document != null)
		document.dispose();
}

以下是加密的PDF文件中的权限。

PDF处理控件Aspose.PDF功能演示:使用Java加密和解密PDF文件


如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询。