如何将32字节转换为256位整数?

时间:2014-02-18 10:52:50

标签: c# c++ sha256

我正忙着将c ++应用移植到c#。 该应用程序包含将数据散列为256位整数的代码。

uint256 res = data->GetHash();

GetHash函数如下所示:

uint256 hash;
SHA256((unsigned char*)&data, sizeof(data), (unsigned char*)&hash);
return hash;

在c#中,我使用BigMath库,但获得了与c ++应用程序不同的值。 我的c#代码如下所示:

SHA256Managed sha256 = new SHA256Managed();

byte[] bytes = GetByteArray(data);

Int256 hash256 = BigMath.Utils.ExtendedBitConverter.ToInt256(sha256.ComputeHash(bytes), 0, true);

c ++应用程序'uint256类型使用8 x 32位整数,而我看到c#BigMath库使用4 x 64位整数。

这不应该导致问题吗?当然两者的输出应该是一样的吗? 我期望sha256和256bit int标准在各种语言中都是一样的吗?

0 个答案:

没有答案