📌  相关文章
📜  Java中的 MessageDigest getInstance() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:55.449000             🧑  作者: Mango

Java中的 MessageDigest getInstance() 方法及示例

在Java中,java.security.MessageDigest类提供了实现消息摘要算法的功能。它是一个抽象类,不能直接实例化,但可以通过静态方法getInstance()获得密钥的摘要信息。

获取 MessageDigest 实例

getInstance()方法有两种重载方式:

  1. getInstance(String algorithm) - 返回指定算法的 MessageDigest 对象
  2. getInstance(String algorithm, Provider provider) - 返回指定算法和提供者的 MessageDigest 对象

其中,algorithm参数是指定使用的算法名称。常见的算法有MD5、SHA-1、SHA-256等。

如果不指定提供者,系统将默认使用JDK提供的提供者。

示例

下面是一个示例,演示如何使用getInstance()方法获取MessageDigest对象,并使用该对象计算字符串的MD5摘要:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

public class MessageDigestExample {

    public static void main(String[] args) throws NoSuchAlgorithmException {
        // 获取MessageDigest实例
        MessageDigest md = MessageDigest.getInstance("MD5");

        // 计算字符串的MD5摘要
        String inputString = "Hello World";
        byte[] inputBytes = inputString.getBytes();
        byte[] hashBytes = md.digest(inputBytes);

        // 输出结果
        System.out.println("输入字符串:" + inputString);
        System.out.println("摘要结果:" + Arrays.toString(hashBytes));
    }
}

输出结果如下:

输入字符串:Hello World
摘要结果:[-87, -35, -24, -70, -78, -106, -54, -126, -108, -27, 97, -23, 84, -64, -63, -68]

以上就是使用getInstance()方法获取MessageDigest实例的示例。开发者可以根据自己的需求选择不同的算法进行摘要计算。