2

我已经苦苦挣扎了 4 天,试图在 c# 中实现一个哈希算法,它的工作原理类似于 FIPS 198 标准文档。我已经达到了一个我有价值的地步

06070405020300010e0f0c0d0a0b0809767774753636363636363636363636363636363636363636363636363636363636363636363636363636026363d23366

我把这个值插入到http://www.fileformat.info/tool/hash.htm上的二进制哈希工具中,SHA-1 值是我所期望的,但我无法在 c# 中复制它。

期望值:

SHA-1:74766e5f6913e8cb6f7f108a11298b15010c353a

当我在 c# 中使用 SHA1 类时,我得到的值是a969fdc725114c8418ca5c23946bd09977054ff6,这与我在上面的字符串哈希工具中输入我的值相同。

有人可以指出我正确的方向来生成我需要的东西。

4

1 回答 1

0

您需要将十六进制字符串数据转换为字节数组。网上有很多关于如何做到这一点的例子。已发布到 SO 的一个示例在这里(使用该StringToByteArray功能)。一旦你有一个字节数组,通过 SHA-1 散列传递它,你应该得到你需要的输出。

于 2012-11-14T09:41:03.297 回答