0

我有以下算法(基于 SHA-1 哈希函数实现)。它产生“abc”的哈希值。结果是未签名的char*摘要。

#define BYTES "abce"
SHA1* sha1 = new SHA1();
sha1->addBytes( BYTES, strlen( BYTES ) );
unsigned char* digest = sha1->getDigest();

我想重新整理结果摘要。我正在按以下方式执行此操作,但不起作用。定义的char* S东西不同于?#define BYTES "abce"

char* S = reinterpret_cast<char*>(digest);
sha1 = new SHA1();
sha1->addBytes( S, strlen( S ) );           
unsigned char* digest1 = sha1->getDigest();
4

1 回答 1

5

strlen除了 C 风格的字符串之外,不要使用任何东西。

          sha1->addBytes( S, strlen( S ) );         

这是没有意义的。您可能需要 20,即 SHA 摘要的大小。

于 2012-09-10T15:32:24.590 回答