C#でお手軽ファイル暗号化
適当なクラスをMessagePackでシリアライズしてからAESで暗号化してファイルに保存、保存したファイルから複合化してデシリアライズしてみました。
今回のソースは以下で公開しています
github.com
シリアライズに使用したMessagePackについては
neue cc - C#(.NET, .NET Core, Unity, Xamarin)用の新しい高速なMessagePack実装
を参考にしてください。
MessagePackAnalyzerをインストールしないとMessagePack関係のコーディングが面倒なので気をつけてください
シリアライズするクラスはPublicにしないと例外が出ます。うっかりPublicを付け忘れると悲惨なことになります。
以下は暗号化関係のソースです
https://github.com/reniris/EasyEncrypt/blob/05dceefdc37aa0a3617c68faa40d664705f244b8/EasyEncrypt/Encrypt.cs
暗号化、複合化部分は抽象化してあるので、拡張しやすくなっているはずです。
暗号化キーは、指定されていない場合は自動生成するようになっています。
最初の一回だけキーを生成してどこかに保存しておいて、次からはそのキーを使うというようなやり方を想定しています。
ネットにある暗号化のサンプルはキーを直接ソースに書いてあるのが多かったので、ソースにキーを書かないことを意識しました。