热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->vc 
站内搜索:
小技巧:用C#实现Des加密和解密
作者:佚名 来源:不详 整理日期:2007-3-20
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();
  }
  }
  }
相关文章