// <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; |
} |
} |