我正在尝试学习一些有关密码学的知识,并尝试将 AES 解密与 c++ 中的 crypto++ 库一起使用。我有一个密文字符串和一个密钥字符串。使用这两个,我想解密这个密文。这是我的代码:
#include "mycrypto.h"
#include <stdio.h>
#include <cstdlib>
#include <string>
#include <aes.h>
#include <config.h>
#include <hex.h>
#include <files.h>
#include <cryptlib.h>
#include <modes.h>
#include <osrng.h>
#include <filters.h>
#include <sha.h>
#include <rijndael.h>
using namespace std;
using namespace CryptoPP;
int main()
{
string myPlainText;
string myKey = "140b41";
string myCipherText = "4ca00f";
byte key[AES::DEFAULT_KEYLENGTH];
byte iv[AES::BLOCKSIZE];
CryptoPP::CBC_Mode<AES>::DECRYPTION decryptor;
decryptor.SetKeyWithIV(key, sizeof(key), iv);
StringSource(myCipherText, true, new StreamTransformationFilter( decryptor, new StringSink(myPlainText)));
return 0;
}
我收到此代码的许多错误。最直接的是这个:
“解密”不是“CryptoPP::CBC_Mode”的成员
任何人都可以用这段代码理顺我。我一直在阅读 crypto++ 文档,但我看不出我做错了什么。
谢谢!