C++ 使用加密++/AES循环流化床不工作

C++ 使用加密++/AES循环流化床不工作,c++,encryption,aes,crypto++,C++,Encryption,Aes,Crypto++,我有一个简单的控制台程序,可以使用加密库中的AES CFB算法加密文件。由于某种原因,它不起作用。编码部分: byte data[16] = { 0x88, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x44, 0x88, 0x44 }; byte result[16] = { 0x8

我有一个简单的控制台程序,可以使用加密库中的AES CFB算法加密文件。由于某种原因,它不起作用。编码部分:

byte data[16] = { 0x88, 0x44, 0x88, 0x44,
                  0x88, 0x44, 0x88, 0x44,
                  0x88, 0x44, 0x88, 0x44, 
                  0x88, 0x44, 0x88, 0x44 };

byte result[16] = { 0x88, 0x44, 0x88, 0x44,
                    0x88, 0x44, 0x88, 0x44,
                    0x88, 0x44, 0x88, 0x44, 
                    0x88, 0x44, 0x88, 0x44 };

//Sample key
byte key[16] = { 0x88, 0x44, 0x88, 0x44,
                 0x88, 0x44, 0x88, 0x44,
                 0x88, 0x44, 0x88, 0x44, 
                 0x88, 0x44, 0x88, 0x44 };

//Generate random Initialization Vector
byte iv[16];
CryptoPP::AutoSeededRandomPool rnd;
rnd.GenerateBlock(iv, CryptoPP::AES::BLOCKSIZE /*16*/);

//Through VisualStudio debug/watch functionality I have found out that
//Crypto++ randomizer works properly so at this point "iv" contains random values

CryptoPP::CFB_Mode<CryptoPP::AES>::Encryption tmp(key, 16, iv, 1);
tmp.ProcessData(data, result, 16);
字节数据[16]={0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44};
字节结果[16]={0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44};
//示例键
字节键[16]={0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44,
0x88,0x44,0x88,0x44};
//生成随机初始化向量
字节iv[16];
CryptoPP::AutoSeedRandomPool rnd;
rnd.GenerateBlock(iv,CryptoPP::AES::BLOCKSIZE/*16*/);
//通过VisualStudio调试/监视功能,我发现
//Crypto++随机化程序工作正常,因此此时“iv”包含随机值
CryptoPP::CFB_模式::加密tmp(密钥,16,iv,1);
tmp.ProcessData(数据,结果,16);
问题是,当此代码完成时,
结果
应该用cyphertext填充,但它只是保持用
px88
0x44
填充


我被这篇官方教程指导着:

ProcessData
outstring
,然后是
instring
然后是length。您已经切换了输入和输出参数
数据
结果
(大多数API将输出参数放在其方法声明的最后,因此这可以解释错误)。

可能重复的请原谅我的无知。。。这与引用的副本有何不同?@jww。它们没有区别。我这样做是因为我对那个问题没有答案。