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 编码的字符串,以便于查看和传输。