中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

c#通過DES加密算法加密大文件

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
using System.Collections;
 using System.Configuration;
 using System.Data;
 using System.Linq;
 using System.Web;
 using System.Web.Security;
 using System.Web.UI;
 using System.Web.UI.HtmlControls;
 using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
 using System.Xml.Linq;
 using System.Text;
 using System.IO;
 using System.Security.Cryptography;

 public partial class Default2 : System.Web.UI.Page
 {
     protected void Page_Load(object sender, EventArgs e)
     {

     }
     private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };//自定義密匙
     private string filePathA;//儲存文件路徑
     private string filePathB;//儲存文件復制后的路徑
     /// <summary>
     /// 文件加密
     /// </summary>
     /// <param name="inFile">文件儲存路徑</param>
     /// <param name="outFile">儲存文件復制的路徑</param>
     /// <param name="encryptKey"></param>
     /// <returns></returns>
     public bool EncryptDES(string inFile, string outFile, string encryptKey)
     {
         byte[] rgb = Keys;
         try
         {
             byte[] rgbKeys = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
             FileStream inFs = new FileStream(inFile, FileMode.Open, FileAccess.Read);//讀入流
             FileStream outFs = new FileStream(outFile, FileMode.OpenOrCreate, FileAccess.Write);// 等待寫入流
             outFs.SetLength(0);//幫助讀寫的變量
             byte[] byteIn = new byte[100];//放臨時讀入的流
             long readLen = 0;//讀入流的長度
             long totalLen = inFs.Length;//讀入流的總長度
             int everylen=0;//每次讀入流的長度
             DES des = new DESCryptoServiceProvider();//將inFile加密后放到outFile
             CryptoStream encStream = new CryptoStream(outFs, des.CreateEncryptor(rgb, rgbKeys), CryptoStreamMode.Write);
             while (readLen < totalLen)
             {
                 everylen = inFs.Read(byteIn, 0, 100);
                 encStream.Write(byteIn, 0, everylen);
                 readLen = readLen + everylen;
             }
             encStream.Close();
             inFs.Close();
             outFs.Close();
             return true;//加密成功
         }
         catch (Exception ex)
         {
             Response.Write(ex.Message.ToString());
             return false;//加密失敗
         }
     }


     public bool DecryptDES(string inFile, string outFile, string encryptKey)
     {
         byte[] rgb = Keys;
         try
         {
             byte[] rgbKeys = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
             FileStream inFs = new FileStream(inFile, FileMode.Open, FileAccess.Read);//讀入流
             FileStream outFs = new FileStream(outFile, FileMode.OpenOrCreate, FileAccess.Write);// 等待寫入流
             outFs.SetLength(0);//幫助讀寫的變量
             byte[] byteIn = new byte[100];//放臨時讀入的流
             long readLen = 0;//讀入流的長度
             long totalLen = inFs.Length;//讀入流的總長度
             int everylen=0;//每次讀入流的長度
             DES des = new DESCryptoServiceProvider();//將inFile加密后放到outFile
             CryptoStream encStream = new CryptoStream(outFs, des.CreateDecryptor(rgb, rgbKeys), CryptoStreamMode.Write);
             while (readLen < totalLen)
             {
                 everylen = inFs.Read(byteIn, 0, 100);
                 encStream.Write(byteIn, 0, everylen);
                 readLen = readLen + everylen;
             }
             encStream.Close();
             inFs.Close();
             outFs.Close();
             return true;//加密成功
         }
         catch (Exception ex)
         {
             Response.Write(ex.Message.ToString());
             return false;//加密失敗
         }
     }
     /// <summary>
     /// 拷貝文件
     /// </summary>
     public void copyFile()
     {
         filePathA = this.fei.PostedFile.FileName;//獲取文件全部路徑
         string fileName = this.fei.FileName;
         string path = System.IO.Path.GetDirectoryName(filePathA);
         filePathB = path + "\\1" + fileName;//重新設置文件名
         File.Copy(filePathA, filePathB);
     }

     protected void btnOK_Click(object sender, EventArgs e)
     {
         copyFile();
         if (EncryptDES(filePathB, filePathA, "mingrisoft"))
         {
             RegisterStartupScript("false", "<script>alert('加密成功!\\n');</script>");
         }
         else
         {
             RegisterStartupScript("false", "<script>alert('失敗成功!\\n');</script>");
         }
         File.Delete(filePathB);
     }
     protected void btnCancel_Click(object sender, EventArgs e)
     {
         copyFile();
         if (DecryptDES(filePathB, filePathA, "mingrisoft"))
         {
             RegisterStartupScript("false", "<script>alert('加密成功!\\n');</script>");
         }
         else
         {
             RegisterStartupScript("false", "<script>alert('失敗成功!\\n');</script>");
         }
         File.Delete(filePathB);
     }
 }

標簽:

版權(quán)申明:本站文章部分自網(wǎng)絡,如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:android開機啟動代碼

下一篇:C#監(jiān)控文件夾并自動給圖片文件打水印