科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道小技巧:用C#实现Des加密和解密

小技巧:用C#实现Des加密和解密

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     using System;   using System.IO;   using System.Security.Cryptography;      namespace Vavic   {   ///   /// Se

作者:中国IT实验室 来源:中国IT实验室 2007年9月28日

关键字: C# 编程

  • 评论
  • 分享微博
  • 分享邮件
  
  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();
  }
  }
  }

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件