The Modern C++ Challenge 第10章 の続きです。
今回は第11章に挑戦します。
まずは目次を読む。
第11章 暗号化
88 シーザー暗号
89 ヴィジュネル暗号
90 Base64 エンコーディングとデコーディング
91 ユーザー資格情報の検証
92 ファイルハッシュの計算
93 ファイルの暗号化と復号化
94 ファイル署名
問題文を読む。
問88 シーザー暗号
右ローテーションと任意のシフト値を持つ Caesar 暗号を使用して、メッセージを暗号化および復号化できるプログラムを作成します。
簡単にするために、プログラムは大文字のテキスト メッセージのみを考慮し、文字のみをエンコードし、数字、記号、およびその他の種類の文字を無視する必要があります。
ソースコードを斜め読みして実行する。 この章は外部ライブラリを使っていて、 すんなり実行できなかった。
問91 問92 にて cryptopp ライブラリを使っている。 ビルドして共有ライブラリ(libcryptopp.a) を作成する。
一通り実行できたので、
Modern C++ に着目して、ソースコードを読んでみる。
問92 問93 にて std::filesystem を使っている。
.cppreference: std::filesystem
第11章 のソースコードを Github に公開した。
https://github.com/ohwada/The-Modern-Cpp-Challenge/tree/main/The-Modern-Cpp-Challenge/Chapter11