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

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

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

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有