2012-05-10 18 views
3

XMLデータを暗号化されたファイルに書き込む必要があります。私は暗号化されたファイルを読み書きすることができますが、ファイル入力部分をスキップしてMemoryStreamオブジェクトから行う方法を考え出すのに問題があります。暗号化されたファイルにXMLを書き込むにはどうすればよいですか?

これはこれまで私が行ってきたことです。基本的には、標準の暗号化を行うためにByte []を取得する必要があります。

素晴らしい入力をいただきありがとうございます。私はこれをまもなくテストします。

EDIT:memorystreamオブジェクトを閉じてみると、「閉鎖ストリームにアクセスできない」という例外が発生します。 MemoryStreamに

MemoryStream ms = new MemoryStream(); 
XmlTextWriter xmlwriter = new XmlTextWriter(ms,Encoding.ASCII); 
FileStream EncryptedFileStream = new FileStream(file, FileMode.Create, FileAccess.Write); 

DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); 
DES.Key = ASCIIEncoding.ASCII.GetBytes("AAAAAAAA"); 
DES.IV = ASCIIEncoding.ASCII.GetBytes("AAAAAAAA"); 

ICryptoTransform desEncrypt = DES.CreateEncryptor(); 
CryptoStream cryptostream = new CryptoStream(EncryptedFileStream, desEncrypt, CryptoStreamMode.Write); 

//create xml document 

byte[] bytearray = new byte[ms.Length]; 
ms.Read(bytearray, 0, bytearray.Length); 

cryptostream.Write(bytearray, 0, bytearray.Length); 

cryptostream.Close(); 
ms.Close(); 
EncryptedFileStream.Close(); 

答えて

2

書き込みとMemoryStream.ToArray()を使用し

+0

ありがとう、私は今memorystreamを使用しています – kevp

+0

ありがとう、それを感謝しました。私の2番目のエラーは、誤った順序でオブジェクトを閉じることでした。 – kevp

1

コンストラクタで何にとるStreamWriterのようなものはありません。実際の宛先ストリームをターゲットとして持つCryptoStreamに書き込みます。

編集:あなたは「私の標準暗号化」と言います。標準の.NET暗号化を使用しているのですか、独自のアルゴリズムをカスタムメソッドで使用しましたか?このソリューションは、ICryptoTransform実装に変更することに依存している可能性があります。

+0

私は何をしようとしているのか投稿しました。私は学校外で新鮮で、これが私たちに課題で使うことを教えたものです。私はもっ​​と良い方法があれば驚かないだろうが、私は努力している。 – kevp

関連する問題