c# - 如何将 C# 哈希字节数组转换为字符串以传递给 API?

标签 c# hash

我有许多值必须组合成一个 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/

相关文章:

c# - 创建通用用户ID的最佳实践

c++ - 一个好的 vector 散列函数

Ruby-如何构建多值哈希?

c# - 如何使用只读用户访问 azure 应用程序服务的 log4net 日志文件夹

c# - IsDisposed 是如何工作的?

c# - 在哪里输入azure函数http触发器中的参数?

algorithm - 我什么时候应该重新哈希整个哈希表?

c# - 从名称中删除所有元音

c# - C# 中的泛型方法

bash - 哈希大文件 block