Использование Crypto ++ для генерации случайных хэшей с SHA1 - PullRequest
4 голосов
/ 08 августа 2011

Мне нужно сгенерировать случайный хеш, используя 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 ++, поэтому вся помощь будет высоко ценится.

Спасибо.

1 Ответ

8 голосов
/ 08 августа 2011

Просто укажите свои пространства имен правильно и тщательно:

#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))));
}
...