您的位置:首页 > 其它

使用des进行加密和解密

2012-07-10 09:42 519 查看
当需要将大量数据进行加密保存同时有需要将数据还原,这就需要用到可逆的加密算法

常用的有des加密解密算法

c# 的des加密算法: 密钥为8位字符串;

using System.Security.Cryptography;

public string desCode(string pToEncrypt, string sKey)

{

using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())

{

byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);

des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

System.IO.MemoryStream ms = new System.IO.MemoryStream();

using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))

{

cs.Write(inputByteArray, 0, inputByteArray.Length);

cs.FlushFinalBlock();

cs.Close();

}

string str = Convert.ToBase64String(ms.ToArray());

ms.Close();

return str;

}

}

c#的解密算法:

public string desUncode(string pToDecrypt, string sKey)

{

byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);

using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())

{

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);

des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

System.IO.MemoryStream ms = new System.IO.MemoryStream();

using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))

{

cs.Write(inputByteArray, 0, inputByteArray.Length);

cs.FlushFinalBlock();

cs.Close();

}

string str = Encoding.UTF8.GetString(ms.ToArray());

ms.Close();

return str;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: