在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 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 的更多信息,請訪問 文檔

也可以看看