作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有许多值必须组合成一个 SHA256 哈希值才能传递给网络服务。这些值使用 Encoding.ASCII.GetBytes(allparametershere) 组合成字节数组,然后通过 myHashMethod.ComputeHash(allParameterByteArray) 散列为 SHA256。由于我必须将此值添加到请求 header ,因此它必须作为字符串传递到请求 header 。
3rd party 系统要求必须是 64 字符十六进制格式的字符串。我过去使用过 Convert.Base64String,但我认为这不是他们想要的,因为我只在传递这样的字符串时出错。有什么想法吗?
谢谢!
最佳答案
这将为您提供大写十六进制的结果,将 X 更改为 x 以减少大小写。
将 SHA256Result 更改为您的 SHA256 哈希结果。
byte[] SHA256Result;
StringBuilder stringBuilder = new StringBuilder();
foreach(byte b in SHA256Result)
stringBuilder.AppendFormat("{0:X2}", b);
string hashString = stringBuilder.ToString();
结果字符串是 hashString,长度应该是 64,记住 SHA256Result 是 32 字节。
关于c# - 如何将 C# 哈希字节数组转换为字符串以传递给 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766038/
我是一名优秀的程序员,十分优秀!