In Crpto ++ kann man leicht Pipeline verwenden, um eine Eingabe zu hashen. inorderHashVerificationFilter und Ausnahme "Message-Hash oder MAC nicht gültig"
std::string out;
CryptoPP::SHA256 sha;
CryptoPP::StringSource ss(input,true,
new CryptoPP::HashFilter(sha,
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(out))));
nun überprüfen eine Meldung gibt x die gleiche Hash-Ausgabe erzeugt, würde Ich mag HashVerificationFilter verwenden. Ich habe es versucht, aber es funktioniert nicht. Wer kennt die richtige Syntax?
const int flags = CryptoPP::HashVerificationFilter::THROW_EXCEPTION | CryptoPP::HashVerificationFilter::HASH_AT_END;
CryptoPP::SHA256 sha;
try
{
CryptoPP::StringSource ss(input + out, true,
new CryptoPP::HashVerificationFilter(sha, NULL , flags));
}
catch(const CryptoPP::Exception& e)
{
std::cerr << e.what() << std::endl;
exit(1);
}
ich die Ausgabe:
HashVerificationFilter: message hash or MAC not valid
Entfernen des Hex-Encoder gearbeitet. Ich brauchte es überhaupt nicht. – itsnevertoobadtoaskforhelp