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
暗号化、複合化部分は抽象化してあるので、拡張しやすくなっているはずです。

暗号化キーは、指定されていない場合は自動生成するようになっています。
最初の一回だけキーを生成してどこかに保存しておいて、次からはそのキーを使うというようなやり方を想定しています。

ネットにある暗号化のサンプルはキーを直接ソースに書いてあるのが多かったので、ソースにキーを書かないことを意識しました。