在java中加密解密excel文件

MS Excel 为您提供了广泛的功能来无缝地保存和分析数据。您可以使用 VBA 模块执行计算、生成图表以及定义自定义逻辑。了解电子表格中数据的重要性,MS Excel 允许您使用加密保护工作簿。此外,您可以对 Excel 文件进行密码保护,以避免未经授权的访问。据此,本文介绍了如何使用 Java 对 Excel 文件进行加密/解密和密码保护。

用于加密和解密 Excel 文件的 Java API

Aspose.Cells for Java 是一个强大的电子表格操作 API,可让您无缝地创建和操作 Excel 文件。此外,它允许您在几行代码内加密和解密工作簿。此外,您可以使用密码保护 Excel 文件。 Aspose.Cells for Java 可以下载为 JAR 或使用以下 Maven 配置安装。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>20.12</version>
</dependency>

使用 Java 加密 Excel 文件

Aspose.Cells for Java 为 Excel 2003 文件提供以下加密类型。

但是,2007/2010 工作簿使用 SHA 和 AES 加密技术进行加密,方式与 MS Excel 相同。以下是使用 Aspose.Cells for Java 加密 Excel 文件的步骤。

为了演示,以下代码示例显示了如何使用 Java 加密 Excel 文件。

// 通过 excel 文件路径实例化工作簿对象
Workbook workbook = new Workbook("workbook.xlsx");

// 密码保护文件
workbook.getSettings().setPassword("1234");

// 通过指定加密类型进行加密
workbook.setEncryptionOptions(EncryptionType.XOR, 40);

// 指定强加密类型(RC4,Microsoft Strong Cryptographic Provider)
workbook.setEncryptionOptions(EncryptionType.STRONG_CRYPTOGRAPHIC_PROVIDER, 128);

// 保存加密的 Excel 文件
workbook.save("encrypted-workbook.xlsx");

使用 Java 解密 Excel 文件

为了解密加密的 Excel 文件,您只需要提供其密码,其余的将由 Aspose.Cells for Java 处理。以下是使用 Java 解密 Excel 文件的步骤。

以下代码示例显示如何使用 Java 解密受密码保护的 Excel 文件。

// 初始化加载选项
LoadOptions loadOptions = new LoadOptions(LoadFormat.XLSX);

// 设置原始密码
loadOptions.setPassword("1234");

// 使用 Excel 文件的路径实例化工作簿对象
Workbook workbook = new Workbook("encrypted-workbook.xlsx", loadOptions);

// 将密码设置为空
workbook.getSettings().setPassword(null);

// 保存解密的 Excel 文件
workbook.save("decrypted-workbook.xlsx");

验证加密 Excel 文件的密码

除了加密/解密,Aspose.Cells for Java 还允许您验证受保护 Excel 文件的密码。以下是执行密码验证的步骤。

以下代码示例显示了如何使用 Java 验证加密 Excel 文件的密码。

// 创建一个流对象
FileInputStream fstream = new FileInputStream("encrypted-workbook.xlsx");

// 验证密码
boolean isPasswordValid = FileFormatUtil.verifyPassword(fstream, "1234");

// 打印结果
System.out.println("Password is Valid: " + isPasswordValid);

获取免费 API 许可证

如果您想在没有评估限制的情况下试用 API,您可以获得免费的临时许可证

结论

在本文中,您学习了如何使用 Java 加密或解密 Excel 文件。此外,您还了解了如何验证加密 Excel 文件的密码。如果您想了解更多有关 Java 电子表格操作 API 的信息,请访问 文档

也可以看看