2014-01-15 2 views
1

나는 asp mvC# 응용 프로그램을 개발 중입니다. 나는 HttpPostedFileBase (아래 코드에서 file 내가 암호화 할 HttpPostedFileBase입니다) 암호화 할 :암호화 HttpPostedFileBase

void Upload(string target, HttpPostedFileBase file) 
{ 
FullPath dest = ParsePath(target); 
FileInfo path = new FileInfo(Path.Combine(dest.Directory.FullName, Path.GetFileName(file.FileName))); 

//file.SaveAs(path.FullName); 

MemoryStream _MemoryStream = new MemoryStream(); 
file.InputStream.CopyTo(_MemoryStream); 

DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider(); 

cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH"); 
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH"); 

CryptoStream crStream = new CryptoStream(_MemoryStream, cryptic.CreateEncryptor(), CryptoStreamMode.Write); 
//Here I want to save my crypted stream to the path 
//.... 
} 
+4

당신이 성취하려는거야? HttpPostedFileBase는 클라이언트 브라우저에서 완료된 전송입니다. 이미 유선을 통해 전송되었으며 데이터는 여기에 보관 될 때까지 서버에 저장됩니다. 디스크에 저장하기 전에 암호화하려고합니까? 그렇다면, InputStream을 사용하여 쓰기를 시도하면 안됩니다. –

+0

그냥 내 서버에 저장하기 전에 암호화하고 싶습니다. – Sayadi

+1

음,'file.InputStream'을'Stream' 오브젝트로 복사 한 다음 그 오브젝트를 암호화하십시오. 나는 문제가 어디 있는지 이해하지 못한다. 파일을 저장하기 전에 – ataravati

답변

0
CryptoStream crStream = new CryptoStream(_MemoryStream, cryptic.CreateEncryptor(), CryptoStreamMode.Write); 
    using (var output = new FileStream(path.FullName, FileMode.Create, FileAccess.Write)) 
    { 
     crStream.CopyTo(output); 
    } 
+0

나는 CryptoSteam이 FileStream을 감싸고 CryptoSteam에 복사해야한다고 생각한다 : using (var output = new FileStream (path.FullName, FileMode.Create, FileAccess.Write) { CryptoStream crStream = 새 CryptoStream (출력, cryptic.CreateEncryptor(), CryptoStreamMode.Write); file.InputStream.CopyTo (crStream); } 그런 식으로 입력 스트림 -> 암호 -> 파일 –

관련 문제