如何在 Java 中使用 sha256 散列一些字符串?

新手上路,请多包涵

如何在 Java 中使用 sha256 散列一些字符串?

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

阅读 527
2 个回答

SHA-256 不是一种“编码”——它是一种单向哈希。

您基本上将字符串转换为字节(例如使用 text.getBytes(StandardCharsets.UTF_8) ),然后对字节进行哈希处理。请注意,哈希的结果 可以是任意二进制数据,如果您想在字符串中表示它,您应该 使用 base64 或十六进制… 不要 尝试使用 String(byte[], String) 构造函数。

例如

MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(text.getBytes(StandardCharsets.UTF_8));

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

我认为最简单的解决方案是使用 Apache Common Codec

 String sha256hex = org.apache.commons.codec.digest.DigestUtils.sha256Hex(stringText);

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

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