萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> C#實現Des加密和解密 代碼

C#實現Des加密和解密 代碼

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

  }

  }

 

  }

copyright © 萬盛學電腦網 all rights reserved