问题
I need to generate a random hash using Crypto++, using SHA1. At the moment I have:
#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))));
When I come to compile, I get the following error reported:
error: expected type-specifier before 'HashFilter'
error: expected ')' before 'HashFilter'
error: 'StringSource' was not declared in this scope
Can anyone help me to get this working? Is there a much simpler way of performing this using this library? I am new to using Crypto++ so all help will be much appreciated.
Thanks.
回答1:
Just specify your namespaces correctly and carefully:
#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))));
}
来源:https://stackoverflow.com/questions/6981616/using-crypto-to-generate-random-hashes-with-sha1