【发布时间】:2018-11-08 08:48:05
【问题描述】:
我在 windows 中使用函数并生成 SHA-1 哈希。
这是我正在使用的函数的一部分,它不是整个函数,但该函数返回一个 GUID。
GUID guid;
res = CryptGetHashParam(hHash, HP_HASHVAL, (BYTE*)&guid, &dwHashLen, 0);
我很确定它可以工作,但我需要对它进行单元测试,因为它在我们代码库的一个非常危险的部分中。
我希望能够做的是 找到一些散列到 GUID 的样本字符串的测试向量 要不然 找到一种将 GUID 转换为字符串的方法。
我使用的测试数据取自网站https://www.di-mgt.com.au/sha_testvectors.html
所以
使用 SHA-1 对字符串“abc”进行散列应该会产生
a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d
散列字符串
abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq 应该产生 84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1
【问题讨论】:
-
为什么你认为你得到的是 GUID 而不是二进制数据?
-
你也应该发布相关的源代码和输出
-
SHA-1 不是加密,它是散列。另外,您使用的是deprecated
CryptCreateHash还是CNG functions?显示一些代码。