用C#实现Des加密和解密

using System;
  using System.IO;
  using System.Security.Cryptography;
  
  namespace Vavic
  {
  /// <summary>
  /// Security 的摘要说明。
  /// </summary>
  public class Security
  {
  const string KEY_64 = "VavicApp";
  const string IV_64 = "VavicApp"; //注意了,是8个字符,64位
  
  public Security()
  {
  //
  // TODO: 在此处添加构造函数逻辑
  //
  }
  
  public static string Encode(string data)
  {
  byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
  byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
  
  DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
  int i = cryptoProvider.KeySize;
  MemoryStream ms = new MemoryStream();
  CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);
  
  StreamWriter sw = new StreamWriter(cst);
  sw.Write(data);
  sw.Flush();
  cst.FlushFinalBlock();
  sw.Flush();
  return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);
  
  }
  
  public static string Decode(string data)
  {
  byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
  byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
  
  byte[] byEnc;
  try
  {
  byEnc = Convert.FromBase64String(data);
  }
  catch
  {
  return null;
  }
  
  DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
  MemoryStream ms = new MemoryStream(byEnc);
  CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
  StreamReader sr = new StreamReader(cst);
  return sr.ReadToEnd();
  }
  }
  }
posted @ 2007-01-14 16:25  sunney  阅读(299)  评论(0编辑  收藏  举报