public class PGSecret
{
#region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="szString">需要加密的字符串</param>
/// <param name="bUpper">大小写处理[true大写,false小写]</param>
/// <returns>返回加密后的字符串</returns>
#endregion
public static String MD5(String szString, Boolean bUpper)
{
Byte[] b = Encoding.Default.GetBytes(szString);
b = new MD5CryptoServiceProvider().ComputeHash(b);
String szResult = "";
for (Int32 i = 0; i < b.Length; i++)
szResult += b[i].ToString("x").PadLeft(2, '0');
return bUpper ? szResult.ToUpper() : szResult.ToLower();
}
#region DES加密
/// <summary>
/// DES加密
/// </summary>
/// <param name="pToEncrypt">要加密的字符串。</param>
/// <param name="sKey">密钥,且必须为8位。</param>
/// <returns>以Base64格式返回的加密字符串。</returns>
#endregion
public static String DesEncrypt(String szToEncrypt, String szKey)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
byte[] inputByteArray = Encoding.UTF8.GetBytes(szToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(szKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(szKey);
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;
}
}
#region DES解密
/// <summary>
/// DES解密
/// </summary>
/// <param name="pToDecrypt">要解密的以Base64</param>
/// <param name="sKey">密钥,且必须为8位。</param>
/// <returns>已解密的字符串。</returns>
#endregion
public static String DesDecrypt(String szToDecrypt, String szKey)
{
byte[] inputByteArray = Convert.FromBase64String(szToDecrypt);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
des.Key = ASCIIEncoding.ASCII.GetBytes(szKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(szKey);
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;
}
}
}
{
#region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="szString">需要加密的字符串</param>
/// <param name="bUpper">大小写处理[true大写,false小写]</param>
/// <returns>返回加密后的字符串</returns>
#endregion
public static String MD5(String szString, Boolean bUpper)
{
Byte[] b = Encoding.Default.GetBytes(szString);
b = new MD5CryptoServiceProvider().ComputeHash(b);
String szResult = "";
for (Int32 i = 0; i < b.Length; i++)
szResult += b[i].ToString("x").PadLeft(2, '0');
return bUpper ? szResult.ToUpper() : szResult.ToLower();
}
#region DES加密
/// <summary>
/// DES加密
/// </summary>
/// <param name="pToEncrypt">要加密的字符串。</param>
/// <param name="sKey">密钥,且必须为8位。</param>
/// <returns>以Base64格式返回的加密字符串。</returns>
#endregion
public static String DesEncrypt(String szToEncrypt, String szKey)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
byte[] inputByteArray = Encoding.UTF8.GetBytes(szToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(szKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(szKey);
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;
}
}
#region DES解密
/// <summary>
/// DES解密
/// </summary>
/// <param name="pToDecrypt">要解密的以Base64</param>
/// <param name="sKey">密钥,且必须为8位。</param>
/// <returns>已解密的字符串。</returns>
#endregion
public static String DesDecrypt(String szToDecrypt, String szKey)
{
byte[] inputByteArray = Convert.FromBase64String(szToDecrypt);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
des.Key = ASCIIEncoding.ASCII.GetBytes(szKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(szKey);
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;
}
}
}