我怎样才能生成 MD5 哈希?

问题

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


#1 热门回答(644 赞)

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()来获取结果哈希。


#2 热门回答(528 赞)

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


#3 热门回答(247 赞)

您可能还想看看apachecommons codecproject的DigestUtils类,它提供了非常方便的方法来创建MD5或SHA摘要。