今年把密码挂了,真是很郁闷的一件事情
DES啊

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

 }

}



posted on 2005-02-06 19:25  AoingLOG  阅读(1592)  评论(0编辑  收藏  举报