1
私はVS 2010(C#)を使用しています。 FTPサイトからアップロード(ダウンロード)されているファイルを暗号化(復号化)しようとしています。私は、ローカルの一時ファイルを使用してダウンロードしてからアップロードしてから解読するよりも早くなると思っていました。私は下のコードでエラーが発生します。私は、さまざまなストリームタイプ(つまり、FileStream、CryptoStream、およびStream)を整列させることができません。どんな助けでも大歓迎です。FTPサイトに投稿したファイルを暗号化する
public void Upload(byte[] desKey, byte[] desIV)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Destination);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(UserName, Password);
FileStream fStream = File.Open(SourceFile, FileMode.OpenOrCreate);
CryptoStream responseStream = new CryptoStream(fStream, new DESCryptoServiceProvider().CreateDecryptor(desKey, desIV), CryptoStreamMode.Read);
byte[] fileContents = Encoding.UTF8.GetBytes(responseStream.ToString());
responseStream.Close(); ///ERROR here
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
}
単体テスト:
public void CleanEncryptUploadTest()
{
FT.ftp uploadTest = new FT.ftp();
uploadTest.UserName = "ausername";
uploadTest.Password = "apassword";
uploadTest.SourceFile = "D:\\Temp\\Test\\file.txt";
uploadTest.Destination = "ftp://ftp.mysite.com/test2.txt";
byte[] key = ASCIIEncoding.ASCII.GetBytes("TestZone");
byte[] initVector = ASCIIEncoding.ASCII.GetBytes("TestZone");
uploadTest.Upload(key, initVector);
}
エラーは何ですか? – CharlesB
あなたはこれをあなたにしたのは速いでしょうか? –
は、大きなファイルをメモリに保存してから直接Webサイトに書き込むほうが、ソースファイルを読み込み、ローカルマシンで暗号化されたコピーを作成し、最終的に暗号化されたファイルをアップロードするよりも速いと考えていました。私は間違っている可能性がある。 –