首頁  >  文章  >  Java  >  Java 函式庫中都有哪些常用加密解密工具?

Java 函式庫中都有哪些常用加密解密工具?

王林
王林原創
2024-05-05 08:54:021008瀏覽

Java函式庫提供了豐富的加密解密工具,包括JCE、JCA、Apache Commons Crypt等。 JCE提供了加密演算法和功能,JCA提供介面存取加密服務提供者,Apache Commons Crypt包含更多加密演算法和工具。實戰案例展示如何使用JCE對文字進行AES加密,產生Base64編碼的密文。

Java 函数库中都有哪些常用加密解密工具?

Java 函數庫中常用的加密解密工具

簡介

加密和解密是保護敏感資料免遭未經授權存取的重要技術。 Java 提供了豐富的函數庫來輔助這些任務。本篇部落格文章將介紹 Java 函數庫中常用的加密解密工具,並透過實戰案例展示其用法。

常用工具

1. Java Cryptography Extension (JCE)

JCE 是Java 標準函式庫的一部分,提供了一系列加密演算法和功能。它包括:

  • 對稱加密(如AES、DES)
  • 非對稱加密(如RSA)
  • 訊息摘要(如MD5、SHA)
  • 數位簽章

2. Java Cryptographic Architecture (JCA)

JCA 是JCE 上的抽象層,提供了存取加密服務提供者(如Bouncy Castle)的介面。它簡化了演算法和提供者的選擇過程。

3. Apache Commons Crypt

Apache Commons Crypt 是第三方函式庫,提供了各種加密演算法和工具,包括:

  • #對稱加密(如AES、3DES)
  • 非對稱加密(如RSA)
  • 訊息摘要(如MD5、SHA)
  • 金鑰產生與管理

實戰案例

假設我們要使用Java 函數函式庫對一段文字進行AES 加密。以下程式碼片段展示如何使用 JCE 來實現:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class Main {
    public static void main(String[] args) throws Exception {
        // 数据明文
        String plaintext = "Hello World";

        // 生成 AES 密钥
        byte[] key = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
        SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");

        // 初始化 AES 加密器
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);

        // 加密数据
        byte[] ciphertext = cipher.doFinal(plaintext.getBytes());

        // 将密文编码为 Base64 格式
        String encodedCiphertext = java.util.Base64.getEncoder().encodeToString(ciphertext);

        // 输出密文
        System.out.println("密文:" + encodedCiphertext);
    }
}

該程式碼產生了一個 Base64 編碼的密文,其中包含使用 AES 加密演算法加密的明文。

以上是Java 函式庫中都有哪些常用加密解密工具?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn