我需要使用 Crypto++ 生成一个随机散列,使用 SHA1。目前我有:

#include <cryptopp/sha.h>
#include <cryptopp/filters.h>
#include <cryptopp/hex.h>

...

CryptoPP::SHA1 sha1;
string source = "Hello";  //This will be randomly generated somehow
string hash = "";
StringSource(source, true, new HashFilter(sha1, new HexEncoder(new StringSink(hash))));

当我来编译时,报告了以下错误:
error: expected type-specifier before 'HashFilter'
error: expected ')' before 'HashFilter'
error: 'StringSource' was not declared in this scope

谁能帮我解决这个问题?使用这个库有没有更简单的方法来执行这个?我是使用 Crypto++ 的新手,因此非常感谢所有帮助。

谢谢。

最佳答案

只需正确并仔细地指定您的命名空间:

#include <cryptopp/sha.h>
#include <cryptopp/filters.h>
#include <cryptopp/hex.h>

#include <string>

int main()
{
  CryptoPP::SHA1 sha1;
  std::string source = "Hello";  //This will be randomly generated somehow
  std::string hash = "";
  CryptoPP::StringSource(source, true, new CryptoPP::HashFilter(sha1, new CryptoPP::HexEncoder(new CryptoPP::StringSink(hash))));
}

关于c++ - 使用 Crypto++ 生成带有 SHA1 的随机哈希,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6981616/

10-15 18:02