我怎样才能生成MD5哈希?

有什么方法可以在Java中生成一个字符串的MD5哈希?


java.security.MessageDigest是你的朋友。 调用getInstance("MD5")以获取您可以使用的MD5消息摘要。


MessageDigest类可以为您提供MD5摘要的一个实例。

当操作字符串和加密类一定要始终指定要在字节表示的编码。如果你只使用string.getBytes()将使用平台默认。 (并非所有平台都使用相同的默认值)

import java.security.*;

..

byte[] bytesOfMessage = yourString.getBytes("UTF-8");

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(bytesOfMessage);

如果您有大量数据,请查看可重复调用的.update(byte[])方法。 然后调用.digest()来获得结果散列。


如果你真的想把答案作为字符串而不是字节数组,你总是可以这样做:

String plaintext = "your text here";
MessageDigest m = MessageDigest.getInstance("MD5");
m.reset();
m.update(plaintext.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1,digest);
String hashtext = bigInt.toString(16);
// Now we need to zero pad it if you actually want the full 32 chars.
while(hashtext.length() < 32 ){
  hashtext = "0"+hashtext;
}
链接地址: http://www.djcxy.com/p/21565.html

上一篇: How can I generate an MD5 hash?

下一篇: Password encryption at client side