Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Crypto++ to generate random hashes with SHA1

Tags:

c++

hash

crypto++

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.

like image 577
MeanwhileInHell Avatar asked Dec 28 '22 16:12

MeanwhileInHell


1 Answers

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))));
}
like image 150
Kerrek SB Avatar answered Jan 08 '23 03:01

Kerrek SB