using System;
  using System.Text;
  using System.Security.Cryptography;
  using System.IO;
  //默认密钥向量
  private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
  /// <summary>
  /// DES加密字符串
  /// </summary>
  /// <param name="encryptString">待加密的字符串</param>
  /// <param name="encryptKey">加密密钥,要求为8</param>
  /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
  public static string EncryptDES(string encryptString, string encryptKey)
  {
  try
  {
  byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
  byte[] rgbIV = Keys;
  byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
  DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
  MemoryStream mStream = new MemoryStream();
  CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
  cStream.Write(inputByteArray, 0, inputByteArray.Length);
  cStream.FlushFinalBlock();
  return Convert.ToBase64String(mStream.ToArray());
  }
  catch
  {
  return encryptString;
  }
  }
  /// <summary>
  /// DES解密字符串
  /// </summary>
  /// <param name="decryptString">待解密的字符串</param>
  密码字符串是什么/// <param name="decryptKey">解密密钥,要求为8,和加密密钥相同</param>
  /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
  public static string DecryptDES(string decryptString, string decryptKey)
  {
  try
  {
  byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
  byte[] rgbIV = Keys;
  byte[] inputByteArray = Convert.FromBase64String(decryptString);
  DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
  MemoryStream mStream = new MemoryStream();
  CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
  cStream.Write(inputByteArray, 0, inputByteArray.Length);
  cStream.FlushFinalBlock();
  return Encoding.UTF8.GetString(mStream.ToArray());
  }
  catch
  {
  return decryptString;
  }
  }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。