我怎样才能生成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