[c#]代码库
// <summary>
// 进行DES加密。
// </summary>
// <param name="pToEncrypt">要加密的字符串。</param>
// <param name="sKey">密钥,且必须为8位。</param>
// <returns>以Base64格式返回的加密字符串。</returns>
public string Encrypt ( 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;
}
}
// <summary>
// 进行DES解密。
// </summary>
// <param name="pToDecrypt">要解密的以Base64</param>
// <param name="sKey">密钥,且必须为8位。</param>
// <returns>已解密的字符串。</returns>
public string Decrypt ( 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;
}
}