小编Joh*_*bel的帖子

(Crypto++) 如何实现媒体文件加密?

我是 Crypto++ 的新手,想将我在网上找到的文本加密代码“转换”为 Crypto++ 文件加密。基本上,图像文件只是一堆需要分块读取的文本,对吗?

我想读取图像文件并使用CryptoPP::AES对其进行加密

void encryptImage(std::filesystem::path const& file) {
    std::ifstream inpf(file.string().c_str(), std::ios::binary);

    CryptoPP::AutoSeededRandomPool rnd;
    int keyLength = CryptoPP::AES::DEFAULT_KEYLENGTH; // 16 bytes = 128 bit key
    int defBlockSize = CryptoPP::AES::BLOCKSIZE;
    // Generate a random key
    CryptoPP::byte key[CryptoPP::AES::DEFAULT_KEYLENGTH];
    rnd.GenerateBlock(key, CryptoPP::AES::DEFAULT_KEYLENGTH);

    // Generate a random IV
    CryptoPP::byte iv[CryptoPP::AES::BLOCKSIZE];
    rnd.GenerateBlock(iv, CryptoPP::AES::BLOCKSIZE);

    char plainText[] = "Hello! How are you.";
    int messageLen = (int)strlen(plainText) + 1;

    //encrypt
    CryptoPP::CFB_Mode<CryptoPP::AES>::Encryption cfbEncryption(key, CryptoPP::AES::DEFAULT_KEYLENGTH, iv);
    cfbEncryption.ProcessData((CryptoPP::byte*)plainText, (CryptoPP::byte*)plainText, messageLen);
}
Run Code Online (Sandbox Code Playgroud)

如果我正确理解这段代码,它会设置一个随机密钥和一个随机 IV(不知道那是什么意思)并使用CFB_MODE::Encryption方法来加密来自纯 …

c++ encryption cryptography aes crypto++

5
推荐指数
1
解决办法
847
查看次数

标签 统计

aes ×1

c++ ×1

crypto++ ×1

cryptography ×1

encryption ×1