linux使用sha256加密算法,我可以使用Crypto++来解密aes-cbc-essiv:sha256(该文件由linux dm-crypt加密)...

有没有人不得不使用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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值