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加密解密有所了解,对你应用C# DES加密解密有所帮助。
【编辑推荐】
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号