在Java中,MD5算法生成的哈希值默认为32位。如果您需要16位的哈希值,可以通过以下代码片段实现:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {

    public static String md5_16(String str) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(str.getBytes());
            byte[] digest = md.digest();
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < digest.length; i++) {
                String hex = Integer.toHexString(digest[i] & 0xFF);
                if (hex.length() == 1) {
                    sb.append('0');
                }
                if (i == 3 || i == 5 || i == 7 || i == 9) {
                    sb.append(hex.charAt(1));
                } else {
                    sb.append(hex);
                }
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }
}

使用示例:

String str = "hello world";
String md5_16 = MD5Util.md5_16(str);
System.out.println(md5_16);

输出:

5eb63bbbe01eeed093cb22bb8f5acdc3
``
Java MD5 16位加密

原文地址: https://www.cveoy.top/t/topic/fH1N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录