MessageDigest 是 Java 中的一个类,用于实现加密算法,例如 SHA-256、SHA-512、MD5 等。它可以将任意长度的数据转换为固定长度的哈希值,通常用于密码验证、数字签名等场景。
用途:用于获取特定算法的 MessageDigest 实例。
用途:用于将字节数组输入添加到当前的 MessageDigest 对象中。
用途:用于将单个字节输入添加到当前的 MessageDigest 对象中。
用途:用于计算当前 MessageDigest 对象的哈希值,并返回结果。
用途:用于计算指定字节数组的哈希值,并返回结果。
用途:用于重置当前 MessageDigest 对象,以便重新使用。
用途:用于获取当前 MessageDigest 对象使用的哈希算法的名称。
这些方法可以根据具体需求在使用 MessageDigest 类时进行调用。
- try {
- MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
-
- Log.e(TAG, messageDigest.getAlgorithm() );
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
-
- }
-
-
运行上述代码,输出结果为: SHA-1
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
-
- public class HashExample {
- public static void main(String[] args) throws NoSuchAlgorithmException {
- String input = "hello world";
- MessageDigest md = MessageDigest.getInstance("SHA-256");
- byte[] hash = md.digest(input.getBytes());
- System.out.println(bytesToHex(hash));
- }
- //bytesToHex 方法用于将字节数组转换为十六进制字符串。
- private static String bytesToHex(byte[] bytes) {
- StringBuilder sb = new StringBuilder();
- for (byte b : bytes) {
- sb.append(String.format("%02x", b));
- }
- return sb.toString();
- }
- }
运行上述代码,输出结果为
185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969