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

how can I generate a SHA-1 byte array from a GUID in C++

本文关键字:SHA-1 字节 字节数 数组 生成 GUID C++ 中从      更新时间:2023-10-16

>我在窗口中使用函数并生成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 生成函数。事实上,时间戳是最好的 GUID。

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