@Jon と同じアプローチ、少し単純化
std::string ciphertext = "..."; // what Python encryption produces
std::string decryptedtext;
byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ], iv[ CryptoPP::AES::BLOCKSIZE ];
// populate key and iv with the correct values
CryptoPP::CBC_Mode< CryptoPP::AES >::Decryption decryptor;
decryptor.SetKeyWithIV(key, sizeof(key), iv);
CryptoPP::StringSource(ciphertext, true,
new CryptoPP::StreamTransformationFilter( decryptor,
new CryptoPP::StringSink( decryptedtext )
)
);
true
パラメータ toは、CryptoPP::StringSource
「入力全体を消費する」ことを意味します
(明らかに) 暗号化に使用した IV を知るには、C++ デクリプタが必要であることに注意してください。Python でランダムな IV を生成するため、一般的な手法は IV を暗号化されたテキストの先頭に追加することです。