//private void decrypt(string priPath,string sessionPath,string filePath) //{ // string privateKey,sessionKey; // byte[] enkey, eniv; // using(StreamReader sr=new StreamReader(sessionPath)) // { // sessionKey = sr.ReadToEnd(); // } // string[] s = sessionKey.Split(','); // enkey = Convert.FromBase64String(s[0]); // eniv = Convert.FromBase64String(s[1]); // using (StreamReader sr = new StreamReader(priPath)) // { // privateKey = sr.ReadLine(); // } // //解密会话密钥 // RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); // rsa.FromXmlString(privateKey); // byte[] key = rsa.Decrypt(enkey, false); // byte[] iv = rsa.Decrypt(eniv, false); // //解密文件 // string[] fileName = filePath.Split('/'); // string downFile = this.downloadPath.Text + "\\" + fileName[fileName.Length - 1]; // string decrypt = AesHelp.DescyrptString(filePath, downFile, key, iv); // using (StreamWriter sw = new StreamWriter(downFile)) // { // sw.WriteLine(decrypt); // } // //this.txt.Text = AesHelp.DescyrptString("../../files/" + userName + "_" + FileName, decrypt, iv); // //string asd = Convert.ToBase64String(iv);//存储iv // //this.txt.Text = Convert.ToBase64String(iv); // //解密key,iv byte[] ds = Convert.FromBase64String(asd); //} //将用户选中的选项下载并且解密 private void D_download_Click(object sender, RoutedEventArgs e) { FolderBrowserDialog m_Dialog = new FolderBrowserDialog(); DialogResult result = m_Dialog.ShowDialog(); if (result == System.Windows.Forms.DialogResult.Cancel) { return; } this.downloadPath.Text = m_Dialog.SelectedPath.Trim(); string filename; foreach (var name in this.Filelist.SelectedItems) { filename = name.ToString(); client.DecryptFile(filename, userName, this.downloadPath.Text); //var q = from t in context.FileTable // from m in context.UserTable // where t.FileName == filename && m.UserName == userName // && t.DownloadId == m.UserId // select new { t.FilePath,t.SessionKey,m.PrivateKey}; //foreach (var item in q) //{ // prikey = @"../../PrivateKey/" + item.PrivateKey; // decrypt(prikey, item.SessionKey, item.FilePath); //} } /** * //TransmitFile实现下载 * Response.ContentType = "application/x-zip-compressed"; * Response.AddHeader("Content-Disposition", "attachment;filename=z.zip"); * string filename = Server.MapPath("DownLoad/z.zip"); * Response.TransmitFile(filename); **/ }