C#实现Des加密和解密 代码
2015-03-23来源:

using System;

using System.IO;

using System.Security.Cryptography;

namespace Vavic

{

///

/// Security 的摘要说明。

///

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

}

}

}

更多信息请查看IT技术专栏

推荐信息
Baidu
map