如何从C ++中的GUID生成SHA-1字节数组

时间:2018-05-29 16:13:20

标签: c++ windows guid sha1

我在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

所以

散列字符串" abc"使用SHA-1应该产生   a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d 散列字符串  abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq应该产生84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1

2 个答案:

答案 0 :(得分:0)

为什么不使用时间戳作为输入使用标准GUID生成函数。事实上,时间戳是最好的GUID。

答案 1 :(得分:0)

事实证明,您不能将SHA-1摘要表示为GUID,因为SHA-1摘要与GUID的大小不同。 我这个愚蠢的错误。