有没有人不得不使用Crypto ++解密文件,使用aes-cbc-essiv:sha256加密linux dm-crypt?
我试图用下面的代码来解密文件。
但这是不正确的。
有没有人有过之前的经验?
你可以帮我吗?
非常感谢。
void decrypt_file(const char* password,
const char* inputFileName, const char* outputFileName)
{
byte pass[ AES::BLOCKSIZE ];
byte iv[16];
byte head_file[16];
memset(iv, 0, 16);
try
{
StringSource(password, true,
new HashFilter(*(new CryptoPP::SHA256),
new ArraySink(pass,AES::BLOCKSIZE)));
CryptoPP::AES::Decryption
aesDecryption(pass, CryptoPP::AES::DEFAULT_KEYLENGTH);
CryptoPP::CBC_Mode_ExternalCipher::Decryption
cbcDecryption( aesDecryption, iv );
StreamTransformationFilter *decryptor =
new StreamTransformationFilter(cbcDecryption,
new FileSink(outputFileName),
StreamTransformationFilter::BlockPaddingScheme::ZEROS_PADDING);
FileSource(inputFileName, true, decryptor);
}
catch(CryptoPP::Exception &e)
{
printf("Exception \n");
cout << "std::exception caught:" << endl << e.what();
return;
}
}