您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

C#实现Des加密和解密 代码

作者:佚名    责任编辑:admin    更新时间:2022-06-22

  using System;

  using System.IO;

  using System.Security.Cryptography;

  namespace Vavic

  {

  ///

  /// Security 的摘要说明。

  ///

  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();

  }

  }

 

  }