Java MessageDigest 類是用于生成消息摘要的,例如 MD5、SHA-1、SHA-256 等。消息摘要是一種固定長度的唯一表示,用于驗證數據的完整性。以下是使用 Java MessageDigest 類進行 SHA-256 加密的示例:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Main {
public static void main(String[] args) {
String input = "Hello, World!";
String hashedInput = sha256Hash(input);
System.out.println("Original text: " + input);
System.out.println("Hashed text: " + hashedInput);
}
public static String sha256Hash(String input) {
try {
// 創建一個 MessageDigest 實例,指定 SHA-256 算法
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
// 使用指定的字符集將輸入字符串轉換為字節數組
byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);
// 使用 MessageDigest 實例對字節數組進行哈希運算
byte[] hashedBytes = messageDigest.digest(inputBytes);
// 將哈希結果轉換為 Base64 編碼的字符串
return Base64.getEncoder().encodeToString(hashedBytes);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("Error hashing input using SHA-256", e);
}
}
}
在這個示例中,我們首先創建了一個 MessageDigest 實例,指定了 SHA-256 算法。然后,我們將輸入字符串轉換為字節數組,并使用 MessageDigest 實例對其進行哈希運算。最后,我們將哈希結果轉換為 Base64 編碼的字符串,以便于查看和傳輸。