首页 > 代码库 > C# DES
C# DES
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个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。