名前の後に '::~ ' を付けることができるのはクラス名または名前空間名だけです
私はC++でファイルの暗号化復号化の勉強をしています。
C++の勉強中でもあります。
以下のコードに出会ったので試しに実行してみたいのですがエラーになってしまいます。
#include <iostream> #include <aes.h> #include <dh.h> #include <modes.h> #include <osrng.h> // 鍵データ初期化 void InitKey(byte* key, size_t size) { for (size_t i = 0; i < size; ++i) { key[i] = rand(); } } // メイン関数 int main() { // 共通鍵・IV byte key[CryptoPP::AES::DEFAULT_KEYLENGTH]; byte iv[CryptoPP::AES::BLOCKSIZE]; // 共通鍵とIVを適当な値で初期化 InitKey(key, sizeof(key)); InitKey(iv, sizeof(iv)); std::string plainText = "暗号化される前の平文"; std::cout << "Plain Text : " << plainText << std::endl; // 暗号化オブジェクトの作成 CryptoPP::CTR_Mode<cryptoPP::AES>::Encryption enc; enc.SetKeyWithIV(key, sizeof(key), iv); // 暗号化のための変換フィルタの作成 std::string encText; CryptoPP::StreamTransformationFilter encFilter(enc, new CryptoPP::StringSink(encText)); // 暗号化 encFilter.Put(reinterpret_cast<const byte*>(plainText.c_str()), plainText.size()); encFilter.MessageEnd(); std::cout << "Encrypted Text : " << encText << std::endl; // 復号化オブジェクトの作成 CryptoPP::CTR_Mode<cryptoPP::AES>::Decryption dec; dec.SetKeyWithIV(key, sizeof(key), iv); // 復号化のための変換フィルタの作成 std::string decText; CryptoPP::StreamTransformationFilter decFilter(dec, new CryptoPP::StringSink(decText)); decFilter.Put(reinterpret_cast<const byte*>(encText.c_str()), encText.size()); decFilter.MessageEnd(); std::cout << "Decrypted Text : " << decText << std::endl; return 0; }
エラーになるところ
CryptoPP::CTR_Mode<cryptoPP::AES>::Encryption enc; CryptoPP::CTR_Mode<cryptoPP::AES>::Decryption dec;
名前の後に '::~ ' を付けることができるのはクラス名または名前空間名だけですという風に出ます。
どう直したらよいのでしょうか。
参考文献
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/03 06:38