Sunwayking

导航

C#的DES加密解密算法[转]

原文地址:http://www.cnblogs.com/weekzero/archive/2007/12/05/983143.html

 

需引用的名称空间:

1:  using System.Security.Cryptography;

 

加密代码:

 1:  /// <summary>
 2:  /// 进行DDES加密。
 3:  /// </summary>
 4:  /// <param name="pToEncrypt">要加密的字符串。</param>
 5:  /// <param name="sKey">密钥,且必须为8位。</param>
 6:  /// <returns>以Base64格式返回的加密字符串。</returns>
 7:  public static string Encrypt(string pToEncrypt, string sKey)
 8:  {
 9:      using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
10:      {
11:          byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
12:          des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
13:          des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
14:          System.IO.MemoryStream ms = new System.IO.MemoryStream();
15:          using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
16:          {
17:              cs.Write(inputByteArray, 0, inputByteArray.Length);
18:              cs.FlushFinalBlock();
19:              cs.Close();
20:          }
21:          string str = Convert.ToBase64String(ms.ToArray());
22:          ms.Close();
23:          return str;
24:      }
25:  }

 

解密代码:

 1:  /// <summary>
 2:  /// 进行DES解密。
 3:  /// </summary>
 4:  /// <param name="pToDecrypt">要解密的以Base64</param>
 5:  /// <param name="sKey">密钥,且必须为8位。</param>
 6:  /// <returns>已解a密的字符串。</returns>
 7:  public static string Decrypt(string pToDecrypt, string sKey)
 8:  {
 9:      byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
10:      using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
11:      {
12:          des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
13:          des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
14:          System.IO.MemoryStream ms = new System.IO.MemoryStream();
15:          using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
16:          {
17:              cs.Write(inputByteArray, 0, inputByteArray.Length);
18:              cs.FlushFinalBlock();
19:              cs.Close();
20:          }
21:          string str = Encoding.UTF8.GetString(ms.ToArray());
22:          ms.Close();
23:          return str;
24:      }
25:  }

posted on 2009-08-23 20:37  Sunwayking  阅读(230)  评论(0编辑  收藏  举报