【发布时间】:2015-11-17 09:28:29
【问题描述】:
我正在使用Example of AES using Crypto++。我想用这个密钥加密:
std::string key = "mykey";
为键分配内存
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 类型的密钥传递给 aesEncryption 函数?
【问题讨论】:
-
只需将您的字符串 memcpy 到键字节数组中。密钥必须为 16 个字节,因此您需要填充“myKey”
-
我做了`std::string keyraw = "0123456789012345"; memcpy(key, keyraw,16);` 我得到 ** no known conversion for argument 1 from âstd::string {aka std::basic_string
}â 到 âconst byte* ** -
好的,那么你准备好了。要么使用
ProcessString对象的ProcessString方法,要么像您的示例一样创建 StreamTransformation。 -
@KurinchiMalar - 另见 Crypto++ wiki 上的 Advanced Encryption Standard。
标签: c++ encryption aes crypto++