自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET C# DES入門淺析

開(kāi)發(fā) 后端
C# DES是什么呢?C# DES的應(yīng)用又是如何呢?這里向你詳細(xì)介紹了一個(gè)C# DES應(yīng)用的具體操作實(shí)例,希望那個(gè)對(duì)你有所幫助。

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è)詞加上密鑰形成的密文,仍然會(huì)重復(fù),這給破解者有機(jī)可乘,破解者可以根據(jù)重復(fù)的內(nèi)容,猜出是什么詞,然而一旦猜對(duì)這個(gè)詞,那么,他就能算出密鑰,整篇文章就被破解了!加上向量這個(gè)參數(shù)以后,每塊文字段都會(huì)依次加上一段值,這樣,即使相同的文字,加密出來(lái)的密文,也是不一樣的,算法的安全性大大提高!

下面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對(duì)象  
  24.  DESCryptoServiceProvider desEncrypt=new DESCryptoServiceProvider();  
  25.  //開(kāi)辟一塊內(nèi)存流  
  26.  MemoryStream msEncrypt=new MemoryStream();  
  27.  //把內(nèi)存流對(duì)象包裝成加密流對(duì)象  
  28.  CryptoStream csEncrypt=new CryptoStream(  
  29. msEncrypt,desEncrypt.CreateEncryptor(  
  30. bytesDESKey,bytesDESIV),CryptoStreamMode.Write);  
  31.  //把加密流對(duì)象包裝成寫入流對(duì)象  
  32.  StreamWriter swEncrypt=new StreamWriter(csEncrypt);  
  33.  //寫入流對(duì)象寫入明文  
  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對(duì)象  
  64.  DESCryptoServiceProvider desDecrypt=new DESCryptoServiceProvider();  
  65.  //開(kāi)辟一塊內(nèi)存流,并存放密文字節(jié)數(shù)組  
  66.  MemoryStream msDecrypt=new MemoryStream(bytesCipher);  
  67.  //把內(nèi)存流對(duì)象包裝成解密流對(duì)象  
  68.  CryptoStream csDecrypt=new CryptoStream(  
  69. msDecrypt,desDecrypt.CreateDecryptor(  
  70. bytesDESKey,bytesDESIV),CryptoStreamMode.Read);  
  71.  //把解密流對(duì)象包裝成讀出流對(duì)象  
  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)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# DES有所幫助。

【編輯推薦】

  1. C#MSN插件開(kāi)發(fā)實(shí)例解析
  2. C#DES算法概念及特點(diǎn)淺析
  3. C#DES算法加密解密實(shí)例解析
  4. C#DES算法實(shí)例解析
  5. C#DES加密解密的實(shí)現(xiàn)實(shí)例淺析
責(zé)任編輯:仲衡 來(lái)源: CSDN博客
相關(guān)推薦

2009-08-25 17:59:49

C#入門

2009-08-26 14:16:17

C# FrameWor

2009-08-21 17:19:36

C#網(wǎng)絡(luò)編程入門

2009-08-14 17:45:52

C# ArrayLis

2009-08-17 18:34:50

C# ChangeCo

2009-08-07 17:25:37

C# SortedLi

2009-09-04 16:37:37

C# DES算法

2009-08-18 10:30:30

C#枚舉

2009-08-11 14:45:41

C# DataGrid

2009-08-10 14:43:03

C#函數(shù)Convert

2009-09-11 09:15:06

C# get方法

2009-07-31 16:00:30

C#函數(shù)重載

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-08-04 09:30:33

C#調(diào)用ImageAn

2009-08-12 17:03:39

C# Static修飾

2009-08-21 15:57:58

C# DataSour

2009-08-20 10:10:55

C#透明窗體

2009-08-20 16:15:19

C# 匿名方法

2009-08-27 11:43:31

C#語(yǔ)法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)