C# DES

來源:互聯網
上載者:User

標籤:des   style   blog   color   使用   os   

using System;//這個是使用DES的基礎using System.Security.Cryptography;//這個是處理文字編碼的前提using System.Text;//以“流”的形式處理文字,也是微軟DES演算法要求的using System.IO;/// <summary>/// DES加密方法/// </summary>/// <param name="strPlain">明文</param>/// <param name="strDESKey">密鑰</param>/// <param name="strDESIV">向量</param>/// <returns>密文</returns>public string DESEncrypt(string strPlain,string strDESKey,string strDESIV){//把密鑰轉換成位元組數組byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);//把向量轉換成位元組數組byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);//聲明1個新的DES對象DESCryptoServiceProvider desEncrypt=new DESCryptoServiceProvider();//開闢一塊記憶體流MemoryStream msEncrypt=new MemoryStream();//把記憶體流對象封裝成加密流對象CryptoStream csEncrypt=new CryptoStream(msEncrypt,desEncrypt.CreateEncryptor(bytesDESKey,bytesDESIV),CryptoStreamMode.Write);//把加密流對象封裝成寫入流對象StreamWriter swEncrypt=new StreamWriter(csEncrypt);//寫入流對象寫入明文swEncrypt.WriteLine(strPlain);//寫入流關閉swEncrypt.Close();//加密流關閉csEncrypt.Close();//把記憶體流轉換成位元組數組,記憶體流現在已經是密文了byte[] bytesCipher=msEncrypt.ToArray();//記憶體流關閉msEncrypt.Close();//把密文位元組數群組轉換為字串,並返回return UnicodeEncoding.Unicode.GetString(bytesCipher);}/// <summary>/// DES解密方法/// </summary>/// <param name="strCipher">密文</param>/// <param name="strDESKey">密鑰</param>/// <param name="strDESIV">向量</param>/// <returns>明文</returns>public string DESDecrypt(string strCipher,string strDESKey,string strDESIV){//把密鑰轉換成位元組數組byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);//把向量轉換成位元組數組byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);//把密文轉換成位元組數組byte[] bytesCipher=UnicodeEncoding.Unicode.GetBytes(strCipher);//聲明1個新的DES對象DESCryptoServiceProvider desDecrypt=new DESCryptoServiceProvider();//開闢一塊記憶體流,並存放密文位元組數組MemoryStream msDecrypt=new MemoryStream(bytesCipher);//把記憶體流對象封裝成解密流對象CryptoStream csDecrypt=new CryptoStream(msDecrypt,desDecrypt.CreateDecryptor(bytesDESKey,bytesDESIV),CryptoStreamMode.Read);//把解密流對象封裝成讀出流對象StreamReader srDecrypt=new StreamReader(csDecrypt);//明文=讀出流的讀出內容string strPlainText=srDecrypt.ReadLine();//讀出流關閉srDecrypt.Close();//解密流關閉csDecrypt.Close();//記憶體流關閉msDecrypt.Close();//返回明文return strPlainText;}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.