下载加密文件然后解密,解密总是失败

时间:2017-08-25 07:59:06

标签: c++ libcurl crypto++

我遇到了最棘手的问题,现在我已经难倒了一段时间。我使用cryptopp来解密从网站下载的文件。出于某种原因,解密每次都出错了,但是当我从程序中的文件或缓冲区解密时,它完美地工作。

以下是我最初加密它的方式。加密后我把它放在网站上。

const byte b_key[ ] = { '1', '0', 'F', 'D', 'F', '6', 'B', 'D', '6', 'A', '3', '8', 'A', '1', '9', 'A', '7', '5', 'A', 'F', '5', '0', 'D', 'B', 'C', '7', '0', 'A', 'A', '4', '5', '2' };
const byte b_iv[ ] = { 'A', '7', '0', 'B', '6', 'C', '6', '3', 'F', '4', 'C', 'D', 'E', '0', '9', '2' };

CryptoPP::CFB_Mode<CryptoPP::AES>::Encryption tmp ( b_key, 32, b_iv );
tmp.ProcessData ( &img[ 0 ], pBuffer, dwFileSize );

这是写函数

struct MemoryInfo
{
    std::vector< byte > buffer;
};



static size_t WriteMemoryCallback ( void *contents, size_t size, size_t nmemb, void *userp )
{
    size_t real_size = size * nmemb;
    MemoryInfo *mem = static_cast< MemoryInfo * >( userp );

    mem->buffer.resize ( mem->buffer.size () + real_size );
    memcpy ( &mem->buffer[ mem->buffer.size () - real_size ], static_cast< byte* >( contents ), real_size );

    return real_size;
}

那么我是如何解密它的。

std::vector< byte > img ( mem.buffer.size () );
CryptoPP::CFB_Mode<CryptoPP::AES>::Decryption tmp ( b_key, CryptoPP::AES::MAX_KEYLENGTH, b_iv );
tmp.ProcessData ( &img[ 0 ], static_cast< byte* >( mem.buffer.data () ), mem.buffer.size () );

不确定我在这里做错了什么,我真的不能去cryptopp的网站,目前一切都只是一个空白页面或告诉我我没有访问。

感谢任何帮助,谢谢。

0 个答案:

没有答案