我有一个二进制文件,使用其他人的AES 128位加密进行加密。
现在我在某些方面得到了钥匙。而且我确定关键是正确的。
以下是我的解密代码:
const BYTE key[16] = {0x04 ,0x38, 0x04, 0x31, 0x2D ,0x32 ,0x0C ,0x30, 0x43 ,0x2E ,0x08 ,0x04, 0x16, 0x30 ,0x22 ,0x0C};
CryptoPP::AES::Decryption decryptor;
decryptor.SetKey(key, 16);
DWORD steps = len / CryptoPP::AES::BLOCKSIZE;
BYTE *cur = inbuff;
for (DWORD i = 0; i < steps; i++)
{
decryptor.ProcessBlock(cur);
cur += CryptoPP::AES::BLOCKSIZE;
}
奇怪的是,只能正确解密文件的前16个字节。
其余的解密字节将成为垃圾数据......
然后我的代码出了什么问题?