gpt4 book ai didi

c++ - 在 Crypto++ 中使用 std::string 作为 AES 加密的 key

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:46 46 4
gpt4 key购买 nike

我正在使用 Example of AES using Crypto++ .我想用这个 key 加密:

std::string key = "mykey";

为key分配内存

byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ], iv[ CryptoPP::AES::BLOCKSIZE ];
memset( key, 0x00, CryptoPP::AES::DEFAULT_KEYLENGTH );
memset( iv, 0x00, CryptoPP::AES::BLOCKSIZE );

进行加密:

CryptoPP::AES::Encryption aesEncryption(key, CryptoPP::AES::DEFAULT_KEYLENGTH);
CryptoPP::CBC_Mode_ExternalCipher::Encryption cbcEncryption( aesEncryption, iv );

如何将 std::string 类型的 key 传递给 aesEncryption 函数?

最佳答案

解决方法如下:

std::string sKey = "mykey";

if(CryptoPP::AES::DEFAULT_KEYLENGTH < sKey.size())
sKey = sKey.substr(0, CryptoPP::AES::DEFAULT_KEYLENGTH); // chop if too long
else if(CryptoPP::AES::DEFAULT_KEYLENGTH > sKey.size())
sKey += std::string(CryptoPP::AES::DEFAULT_KEYLENGTH - sKey.size(), '*'); // pad

memcpy(key, sKey.c_str(), CryptoPP::AES::DEFAULT_KEYLENGTH);

关于c++ - 在 Crypto++ 中使用 std::string 作为 AES 加密的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33753293/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com