예제 #1
0
        //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);
             **/
        }