Расшифровка Plantext с использованием HMAC crypto ++ - PullRequest
0 голосов
/ 30 октября 2019

У меня проблема с использованием HMAC библиотеки crypto ++

Я использовал эту ссылку для создания зашифрованного сообщения crypto ++ - HMAC , и она работает нормально

AutoSeededRandomPool prng;
SecByteBlock key(16);
prng.GenerateBlock(key, key.size());
string plain = "HMAC Test";
string mac, encoded;
// Pretty print key
encoded.clear();
StringSource ss1(key, key.size(), true,
new HexEncoder(
    new StringSink(encoded)
) // HexEncoder
); // StringSource

cout << "key: " << encoded << endl;
cout << "plain text: " << plain << endl;

try
{
HMAC< SHA256 > hmac(key, key.size());

StringSource ss2(plain, true, 
    new HashFilter(hmac,
        new StringSink(mac)
    ) // HashFilter      
); // StringSource
}
catch(const CryptoPP::Exception& e)
{
cerr << e.what() << endl;
exit(1);
}
// Pretty print
encoded.clear();
StringSource ss3(mac, true,
new HexEncoder(
    new StringSink(encoded)
) // HexEncoder
); // StringSource

cout << "hmac: " << encoded << endl;

теперь, с другой стороны, я хочу расшифровать это сообщение и получить настоящий простой текст, но я пока не получил никакого результата. Я проверил шаги этой ссылки раскодировать , но это мне не помогло. Я не знаю, где мне следует использовать ключ?

, пожалуйста, помогите мне найти решение

1 Ответ

0 голосов
/ 12 ноября 2019

Я понял, что HMAC - это не алгоритм шифрования, это алгоритм кодирования.

другие могут видеть наши сообщения, используя HMAC, но они не могут давать нам сообщения, которые не проверены.

и все байты сообщения могут быть закодированы для отправки, а в части получателя мы декодируем наш ключ и проверяемавторитет сообщений, закодированный раздел сообщения имеет фиксированный размер в соответствии с используемой нами функцией хеширования (MD5, SHA1, SHA256)

...