DOBON.NET DOBON.NETプログラミング掲示板過去ログ

soapFormatterを使ったファイルの暗復号化

環境/言語:[C#]
分類:[.NET]

あるクラスが持っている情報をsoapFormatter.Serializeを用いて
保存していたのですが(デバックしやすいように)、
情報を手動で変更されると困るので、
http://dobon.net/vb/dotnet/string/encryptfile.html
にあるEncryptFileを用いて、更に暗号化することにしました。

この場合、情報を保存するには、soapFormatter形式でファイルに保存してから、
EncryptFileを使って暗号化ファイル保存するという2段階のファイルを作成する
必要が出てきます。
逆の復号化も2段階のファイルを経なければなりません。
そうなると、ファイル操作関連のエラーリスクが増えてしまうので、
これをストリームなどの形式で情報を渡して、
ファイルの読み込み、書き込みを1回だけで済ます良い方法があれば教えてください。

以下は私なりの考察です。
A:暗号化を行う前に、soapFormatter.Serializeを行うわけですが、
これを行った時点でファイルに書き込み処理が完了してしまうので、
私の中ではファイル操作を1回で済ますのは難しいと思っています。

B:復号化を行うとき、DecryptFileを用いていますが、
暗号化ファイルを読み込んだ情報をsoapFormatter.Deserializeに
渡せれればよいのですが、
DecryptFileではStreamReaderで情報を保持し、
DeserializeではStream形式で入力するので、、
ここの変換がうまくいけば(Deserializeに対応できる形式になれば)、
復号化のファイル読み込みは1回でできると思うのですが、
やり方がわからないので、教えてください。

よろしくお願いいたします。
MemoryStreamを使うのは、どうでしょうか?

DOBON.NET .NET Tips - 文字列を暗号化する
http://dobon.net/vb/dotnet/string/encryptstring.html

DOBON.NET | プログラミング道 | プログラミング掲示板