C++哈希算法

Has*_*hed 0 c++ hash sha1

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

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

我想重新考虑结果摘要.我是按照以下方式做到这一点但不起作用.是否char* S定义了不同的东西#define BYTES "abce"

char* S = reinterpret_cast<char*>(digest);
sha1 = new SHA1();
sha1->addBytes( S, strlen( S ) );           
unsigned char* digest1 = sha1->getDigest();
Run Code Online (Sandbox Code Playgroud)

Dav*_*rtz 5

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

          sha1->addBytes( S, strlen( S ) );         
Run Code Online (Sandbox Code Playgroud)

这是没有意义的.你可能想要20,一个SHA摘要的大小.