使用 DigestUtils 获取 base64 格式的 SHA256

Getting SHA256 in base64 format using DigestUtils

我正在尝试获取 base64 格式字符串的 SHA256 哈希值。

我正在使用 org.apache.commons.codec.digest 中的 DigestUtils。我不知道如何获取Base64格式,即使我可以获取Hex格式。

Sha256String = org.apache.commons.codec.digest.DigestUtils.sha256Hex(StringText);

使用 "a" 作为字符串测试,这一行 returns

ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb

但我真正需要的是ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs

一直在不停地看书,看不懂怎么读。

现在我正在尝试这个

Byte[] digest = org.apache.commons.codec.digest.DigestUtils.sha256(StringText);

我需要将它存储在一个变量中,所以我正在尝试这个

String OutStr = new String(digest);

运气不好。我不知道还能在哪里搜索帮助,因为我已经阅读了所有 google 搜索很多次(如果答案在那里,我没有看到它)

我不会在 java 中编写代码,但这次我需要它才能开始工作!爱!

您可以使用Base64.Encoder.encodeToString()方法将字节数组转换为Base64

这是一个简短的例子:(因为我不熟悉你的 util,只是用你的字节数组替换一些数据)

byte[] data = someData;
MessageDigest digester = MessageDigest.getInstance("SHA-256");
digester.update(data);
String base64Encoded = Base64.getEncoder().encodeToString(digester.digest());