Java计算MD5哈希

And*_*oid 12 java md5 md5sum

http://www.anyexample.com/programming/java/java_simple_class_to_compute_md5_hash.xml给出一个例子如何计算字符串的MD5哈希值.这导致20位十六进制字符串.根据http://en.wikipedia.org/wiki/MD5,我希望有一个32位的十六进制字符串.我得到了相同的结果,例如使用dac2009响应如何生成MD5哈希?.

为什么我得到的东西看起来像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);
}
Run Code Online (Sandbox Code Playgroud)

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

tsd*_*sds 46

org.apache.commons.codec.digest.DigestUtils改为使用:

DigestUtils.md5Hex(str);
Run Code Online (Sandbox Code Playgroud)

这将给你32个字符串作为结果

  • 主题标题具有误导性,因为没有提及移动.例如,这个答案对我来说很有用,因为我搜索一个简单的java示例.这个答案对我来说很完美:) (5认同)
  • 因为它是一个移动应用程序,我不想使用任何其他包,而是留在"普通java". (2认同)

Mar*_*aux 4

你一定是错过了什么。链接的代码很好。确保问题不在其他地方,与显示结果有关。可能性:

  • GUI 太小
  • 在存在多线程问题的控制台中
  • 通过即将被切断的网络包
  • 你将长度缩短为,而不是 ,20即。0x2032