Java计算MD5哈希值

2024-02-27

In http://www.anyexample.com/programming/java/java_simple_class_to_compute_md5_hash.xml http://www.anyexample.com/programming/java/java_simple_class_to_compute_md5_hash.xml给出了如何计算 String 的 MD5 哈希值的示例。这会产生 20 位十六进制字符串。根据http://en.wikipedia.org/wiki/MD5 http://en.wikipedia.org/wiki/MD5我期望一个 32 位的十六进制字符串。我得到相同的结果,例如使用 dac2009 响应如何生成 MD5 哈希值? https://stackoverflow.com/questions/415953/generate-md5-hash-in-java.

为什么我得到的东西看起来像 MD5 哈希值,但实际上不是?我无法想象我得到的所有字符串都必须用 12 个前导零填充。

编辑:一个代码示例

public static String MungPass(String pass) throws NoSuchAlgorithmException {
    MessageDigest m = MessageDigest.getInstance("MD5");
    byte[] data = pass.getBytes(); 
    m.update(data,0,data.length);
    BigInteger i = new BigInteger(1,m.digest());
    return String.format("%1$032X", i);
}

取自http://snippets.dzone.com/posts/show/3686 http://snippets.dzone.com/posts/show/3686


use org.apache.commons.codec.digest.DigestUtils反而:

DigestUtils.md5Hex(str);

这将为您提供 32 个字符的字符串结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java计算MD5哈希值 的相关文章

随机推荐