C#实现Des加密和解密 下载本文

内容发布更新时间 : 2024/11/6 9:29:01星期一 下面是文章的全部内容请认真阅读。

C#实现Des加密和解密

代码如下:

using System; using System.IO;

using System.Security.Cryptography;

namespace Vavic {

///

/// Security 的摘要说明。 ///

public class Security {

const string KEY_64 = \

const string IV_64 = \注意了,是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(); } } }