C#DES加密解密的实现实例浅析

C# DES加密解密的实现,DES算法为密码体制中的对称密码体制,由IBM公司研制的对称密码体制加密算法。其核心为密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

C# DES加密解密的实现实例:

C# DES加密解密之名称空间  :

 
 
 
  1. using  System;    
  2. using  System.Security.Cryptography;    
  3. using  System.IO;    
  4. using  System.Text;   

C# DES加密解密之方法 :

 
 
 
  1. //加密方法    
  2. publicstring  Encrypt(string  pToEncrypt,  string  sKey)    
  3. {    
  4.  DESCryptoServiceProvider  des  =  new  DESCryptoServiceProvider();    
  5.  //把字符串放到byte数组中    
  6.   //原来使用的UTF8编码,我改成Unicode编码了,不行    
  7.  byte[]  inputByteArray  =  Encoding.Default.GetBytes(pToEncrypt);    
  8.  //byte[]  inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt);  

C# DES加密解密之建立加密对象的密钥和偏移量 

 
 
 
  1.  //原文使用ASCIIEncoding.ASCII方法的GetBytes方法    
  2.  //使得输入密码必须输入英文文本    
  3.  des.Key  =  ASCIIEncoding.ASCII.GetBytes(sKey);    
  4.  des.IV  =  ASCIIEncoding.ASCII.GetBytes(sKey);    
  5.  MemoryStream  ms  =  new  MemoryStream();    
  6.  CryptoStream  cs  =  new  CryptoStream(  
  7. ms,  des.CreateEncryptor(),CryptoStreamMode.Write);    
  8.  //Write  the  byte  array  into  the  crypto  stream    
  9.  //(It  will  end  up  in  the  memory  stream)    
  10.  cs.Write(inputByteArray,  0,  inputByteArray.Length);    
  11.  cs.FlushFinalBlock();    
  12.  //Get  the  data  back  from  the  memory  stream,  and  into  a  string    
  13.  StringBuilder  ret  =  new  StringBuilder();    
  14.  foreach(byte  b  in  ms.ToArray())    
  15.    {    
  16.    //Format  as  hex    
  17.    ret.AppendFormat("{0:X2}",  b);    
  18.    }    
  19.  ret.ToString();    
  20.  return  ret.ToString();    
  21. }   

C# DES加密解密之解密方法 

 
 
 
  1. publicstring  Decrypt(string  pToDecrypt,  string  sKey)    
  2. {    
  3.  DESCryptoServiceProvider  des  =  new  DESCryptoServiceProvider();    
  4.  
  5.  //Put  the  input  string  into  the  byte  array    
  6.  byte[]  inputByteArray  =  new  byte[pToDecrypt.Length  /  2];    
  7.  for(int  x  =  0;  x  <  pToDecrypt.Length  /  2;  x++)    
  8.  {    
  9.  int  i  =  (Convert.ToInt32(pToDecrypt.Substring(x  *  2,  2),  16));    
  10. inputByteArray[x]  =  (byte)i;    
  11.  }   

C# DES加密解密之建立加密对象的密钥和偏移量,此值重要,不能修改 

 
 
 
  1.  des.Key  =  ASCIIEncoding.ASCII.GetBytes(sKey);    
  2.  des.IV  =  ASCIIEncoding.ASCII.GetBytes(sKey);    
  3.  MemoryStream  ms  =  new  MemoryStream();    
  4.  CryptoStream  cs  =  new  CryptoStream(ms,    
  5. des.CreateDecryptor(),CryptoStreamMode.Write);    
  6.  //Flush  the  data  through  the  crypto  stream  into  the  memory  stream    
  7.  cs.Write(inputByteArray,  0,  inputByteArray.Length);    
  8.  cs.FlushFinalBlock();    
  9.  
  10.  //Get  the  decrypted  data  back  from  the  memory  stream    
  11.  //建立StringBuild对象,  
  12. //CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象    
  13.  StringBuilder  ret  =  new  StringBuilder();    
  14.      
  15.  return  System.Text.Encoding.Default.GetString(ms.ToArray());    
  16. }  

C# DES加密解密的实例解析就向你介绍到这里,希望你对C# DES加密解密有所了解,对你应用C# DES加密解密有所帮助。

【编辑推荐】

  1. C# MSN Messenger的窗口的实现浅析
  2. C#MSN插件开发实例解析
  3. C#DES算法概念及特点浅析
  4. C#DES算法加密解密实例解析
  5. C#DES算法实例解析

当前文章:C#DES加密解密的实现实例浅析
网站路径:http://www.shufengxianlan.com/qtweb/news49/319549.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联