日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
.NETC#DES入門淺析

C# DES加密應(yīng)該是最基礎(chǔ)的加密算法,為了搞清楚它在.NET C#里面的用法,我費(fèi)了不少功夫,希望有心人能看到。C# DES一共就有4個(gè)參數(shù)參與運(yùn)作:明文、密文、密鑰、向量。為了初學(xué)者容易理解,可以把4個(gè)參數(shù)的關(guān)系寫成:密文=明文+密鑰+向量;明文=密文-密鑰-向量。為什么要向量這個(gè)參數(shù)呢?因?yàn)槿绻幸黄恼拢袔讉€(gè)詞重復(fù),那么這個(gè)詞加上密鑰形成的密文,仍然會重復(fù),這給破解者有機(jī)可乘,破解者可以根據(jù)重復(fù)的內(nèi)容,猜出是什么詞,然而一旦猜對這個(gè)詞,那么,他就能算出密鑰,整篇文章就被破解了!加上向量這個(gè)參數(shù)以后,每塊文字段都會依次加上一段值,這樣,即使相同的文字,加密出來的密文,也是不一樣的,算法的安全性大大提高!

下面C# DES的應(yīng)用實(shí)例:

 
 
 
  1.  using System;
  2. //這個(gè)是使用DES的基礎(chǔ)
  3. using System.Security.Cryptography;
  4. //這個(gè)是處理文字編碼的前提
  5. using System.Text;
  6. //以“流”的形式處理文字,也是微軟DES算法要求的
  7. using System.IO;
  8. /// 
  9. /// C# DES加密方法
  10. ///
  11.  
  12. ///  明文  
  13. ///  密鑰  
  14. ///  向量  
  15. ///  密文
  16. public string DESEncrypt(string strPlain,
  17. string strDESKey,string strDESIV)
  18. {
  19.  //把密鑰轉(zhuǎn)換成字節(jié)數(shù)組
  20.  byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);
  21.  //把向量轉(zhuǎn)換成字節(jié)數(shù)組
  22.  byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);
  23.  //聲明1個(gè)新的DES對象
  24.  DESCryptoServiceProvider desEncrypt=new DESCryptoServiceProvider();
  25.  //開辟一塊內(nèi)存流
  26.  MemoryStream msEncrypt=new MemoryStream();
  27.  //把內(nèi)存流對象包裝成加密流對象
  28.  CryptoStream csEncrypt=new CryptoStream(
  29. msEncrypt,desEncrypt.CreateEncryptor(
  30. bytesDESKey,bytesDESIV),CryptoStreamMode.Write);
  31.  //把加密流對象包裝成寫入流對象
  32.  StreamWriter swEncrypt=new StreamWriter(csEncrypt);
  33.  //寫入流對象寫入明文
  34.  swEncrypt.WriteLine(strPlain);
  35.  //寫入流關(guān)閉
  36.  swEncrypt.Close();
  37.  //加密流關(guān)閉
  38.  csEncrypt.Close();
  39.  //把內(nèi)存流轉(zhuǎn)換成字節(jié)數(shù)組,內(nèi)存流現(xiàn)在已經(jīng)是密文了
  40.  byte[] bytesCipher=msEncrypt.ToArray();
  41.  //內(nèi)存流關(guān)閉
  42.  msEncrypt.Close();
  43.  //把密文字節(jié)數(shù)組轉(zhuǎn)換為字符串,并返回
  44.  return UnicodeEncoding.Unicode.GetString(bytesCipher);
  45. }
  46. /// 
  47. /// C# DES解密方法
  48. ///
  49.  
  50. ///  密文  
  51. ///  密鑰  
  52. ///  向量  
  53. ///  明文
  54. public string DESDecrypt(string strCipher,
  55. string strDESKey,string strDESIV)
  56. {
  57.  //把密鑰轉(zhuǎn)換成字節(jié)數(shù)組
  58.  byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);
  59.  //把向量轉(zhuǎn)換成字節(jié)數(shù)組
  60.  byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);
  61.  //把密文轉(zhuǎn)換成字節(jié)數(shù)組
  62.  byte[] bytesCipher=UnicodeEncoding.Unicode.GetBytes(strCipher);
  63.  //聲明1個(gè)新的DES對象
  64.  DESCryptoServiceProvider desDecrypt=new DESCryptoServiceProvider();
  65.  //開辟一塊內(nèi)存流,并存放密文字節(jié)數(shù)組
  66.  MemoryStream msDecrypt=new MemoryStream(bytesCipher);
  67.  //把內(nèi)存流對象包裝成解密流對象
  68.  CryptoStream csDecrypt=new CryptoStream(
  69. msDecrypt,desDecrypt.CreateDecryptor(
  70. bytesDESKey,bytesDESIV),CryptoStreamMode.Read);
  71.  //把解密流對象包裝成讀出流對象
  72.  StreamReader srDecrypt=new StreamReader(csDecrypt);
  73.  //明文=讀出流的讀出內(nèi)容
  74.  string strPlainText=srDecrypt.ReadLine();
  75.  //讀出流關(guān)閉
  76.  srDecrypt.Close();
  77.  //解密流關(guān)閉
  78.  csDecrypt.Close();
  79.  //內(nèi)存流關(guān)閉
  80.  msDecrypt.Close();
  81.  //返回明文
  82.  return strPlainText;
  83. }

C# DES的應(yīng)用及入門的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C# DES有所幫助。


文章名稱:.NETC#DES入門淺析
網(wǎng)頁URL:http://www.5511xx.com/article/cdiiege.html