我使用 Vircurex API 编写了一个用于交易电子货币的小程序。他们的文档使用 Ruby 代码示例,我不确定 C# 中的等价物是什么。对于任何感兴趣的人,这里列出了他们的文档:
https://vircurex.com/welcome/api
我不断收到 8003 - 身份验证失败,我想这意味着我发送了不正确的 SHA2 哈希。他们写道:
“跨多个输入值的 SHA2 哈希。有关如何计算它的详细信息,请参见下文”
tok = Digest::SHA2.hexdigest("#{secret_word};#{user_name};#{t};#{trx_id};create_order;sell;10;btc;50;nmc")
我在 c# 中有以下代码:
public static string getHashSha256(string text)
{
byte[] bytes = Encoding.UTF8.GetBytes(text);
SHA256Managed hashstring = new SHA256Managed();
byte[] hash = hashstring.ComputeHash(bytes);
string hashString = string.Empty;
foreach (byte x in hash)
hashString += String.Format("{0:x2}", x);
return hashString;
}
我试图在在线 irb 中对其进行测试
http://tryruby.org/levels/1/challenges/0
为了查看 Digest::SHA2.hexdigest(".......") 方法会生成什么哈希,但我得到了一个
Digest::SHA2.hexdigest("hello")
=> #<NameError: uninitialized constant Digest>
所以基本上我不知道它是否是一个不正确的哈希值,但我认为它是。我希望能够在 Ruby 中对其进行测试,如果 C# 方法生成哈希的方式出现错误,我也希望能提供任何帮助。