如何理解C#DES加密解密的实现

这篇文章将为大家详细讲解有关如何理解C#DES加密解密的实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

10年的蓬莱网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整蓬莱建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“蓬莱网站设计”,“蓬莱网站推广”以来,每个客户项目都认真落实执行。

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

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

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

using  System;    using  System.Security.Cryptography;    using  System.IO;    using  System.Text;

C# DES加密解密之方法 :

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

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

 //原文使用ASCIIEncoding.ASCII方法的GetBytes方法     //使得输入密码必须输入英文文本     des.Key  =  ASCIIEncoding.ASCII.GetBytes(sKey);     des.IV  =  ASCIIEncoding.ASCII.GetBytes(sKey);     MemoryStream  ms  =  new  MemoryStream();     CryptoStream  cs  =  new  CryptoStream(  ms,  des.CreateEncryptor(),CryptoStreamMode.Write);     //Write  the  byte  array  into  the  crypto  stream     //(It  will  end  up  in  the  memory  stream)     cs.Write(inputByteArray,  0,  inputByteArray.Length);     cs.FlushFinalBlock();     //Get  the  data  back  from  the  memory  stream,  and  into  a  string     StringBuilder  ret  =  new  StringBuilder();     foreach(byte  b  in  ms.ToArray())       {       //Format  as  hex       ret.AppendFormat("{0:X2}",  b);       }     ret.ToString();     return  ret.ToString();    }

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

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

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

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

关于如何理解C#DES加密解密的实现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站名称:如何理解C#DES加密解密的实现
文章网址:http://scyanting.com/article/gpesic.html