如何在 Java 中生成 MD5 哈希?

新手上路,请多包涵

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

原文由 Akshay 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 491
2 个回答

你需要 java.security.MessageDigest

调用 MessageDigest.getInstance("MD5") 得到 MessageDigest 的MD5实例你可以使用。

通过执行以下操作之一计算哈希:

  • 将整个输入作为 byte[] 提供,并使用 md.digest(bytes) 在一次操作中计算哈希值。
  • 通过调用 md.update(bytes) 一次喂养 MessageDigest 一个 byte[] 块。添加完输入字节后,使用 md.digest() 计算哈希值。

byte[] 返回的 md.digest() 是MD5散列。

原文由 Bombe 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

 import java.security.*;

..

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

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

如果您有大量数据,请查看可以重复调用的 .update(xxx) 方法。然后调用 .digest() 获取结果哈希。

原文由 koregan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题