C#实现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 @ 2008-04-15 21:55  古道轻风  阅读(270)  评论(0编辑  收藏  举报