像.net那样格式化sha-1哈希
本文关键字:sha-1 哈希 格式化 net | 更新日期: 2023-09-27 18:11:28
我有一个关于java如何打印HexString以及如何以c#使用BitConverter的相同格式打印它的问题。
我们(双方)正在生成这个十六进制作为SHA-1哈希字符串的结果:
a94a8fe5ccb19ba61c4c873d391e987982fbbd3("测试"字符串的哈希值)
问题是当我们在c#中测试哈希时,c#打印大写并以"-"分隔,如A9-4A-8F ..等等。
如何用java打印相同的格式?
哈希和打印的代码如下:
String password = "test";
byte[] key = password.getBytes();
MessageDigest md = MessageDigest.getInstance("SHA-1",new BouncyCastleProvider());
byte[] hash = md.digest(key);
String result = "";
for (byte b : hash) {
result += Integer.toHexString(b & 255);
}
return result;
String result = "";
for (byte b : hash) {
result += Integer.toHexString(b & 255).toUpperCase() + "-";
}
return result.subString(0, result.length()-1);