我正在尝试获取base64格式的字符串的SHA256哈希。
我正在使用DigestUtils
中的org.apache.commons.codec.digest
。即使我可以获取Hex格式,我也不知道如何获取Base64格式。
Sha256String = org.apache.commons.codec.digest.DigestUtils.sha256Hex(StringText);
使用"a"
作为字符串测试,此行返回
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
但是我真正需要的是ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs
。
我一直在不停地阅读,并且不知道该怎么做。
现在我正在尝试
Byte[] digest = org.apache.commons.codec.digest.DigestUtils.sha256(StringText);
这需要将其存储在变量中,所以我正在尝试
String OutStr = new String(digest);
没有运气。我不知道在其他地方可以找到帮助,因为我已经阅读了很多Google搜索的很多次了(如果答案在那儿,我就看不到了)
我没有用Java编写代码,但是这次我需要这个才能开始工作!爱!
答案 0 :(得分:0)
您可以使用Base64.Encoder.encodeToString()
方法将字节数组转换为Base64
。
这是一个简短的示例:(由于我不熟悉您的util,因此只需将某些数据替换为您的字节数组即可)
byte[] data = someData;
MessageDigest digester = MessageDigest.getInstance("SHA-256");
digester.update(data);
String base64Encoded = Base64.getEncoder().encodeToString(digester.digest());