MD5加密:
#region MD5加密
/// <summary>
/// 利用 MD5 加密算法加密字符串
/// </summary>
/// <param name="src">字符串源串</param>
/// <returns>返加MD5 加密后的字符串</returns>
public static string ComputeMD5(string src)
{
//将密码字符串转化成字节数组
byte[] byteArray = GetByteArray(src);
//计算 MD5 密码
byteArray = (new MD5CryptoServiceProvider().ComputeHash(byteArray));
//将字节码转化成字符串并返回
return BitConverter.ToString(byteArray);
}
/// <summary>
/// 将指定串加密为不包含中杠的MD5值
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <param name="isupper">返回值的大小写(true大写,false小写)</param>
/// <returns></returns>
public static string ComputeMD5(string str, bool isupper)
{
string md5str = ComputeMD5(str);
if (isupper)
return md5str.ToUpper();
return md5str.ToLower();
}
/// <summary>
/// 将字符串翻译成字节数组
/// </summary>
/// <param name="src">字符串源串</param>
/// <returns>字节数组</returns>
private static byte[] GetByteArray(string src)
{
byte[] byteArray = new byte[src.Length];
for (int i = 0; i < src.Length; i++)
{
byteArray[i] = Convert.ToByte(src[i]);
}
return byteArray;
}
#endregion
SHA1加密:
#region SHA1加密
public string SHA1(string Source_String)
{
byte[] StrRes = Encoding.Default.GetBytes(Source_String);
HashAlgorithm iSHA = new SHA1CryptoServiceProvider();
StrRes = iSHA.ComputeHash(StrRes);
StringBuilder EnText = new StringBuilder();
foreach (byte iByte in StrRes)
{
EnText.AppendFormat("{0:x2}", iByte);
}
return EnText.ToString();
}
#endregion
DES加密解密:
private const string _encryptDES = "HYLANC80";
#region DES加密与解密
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string EncryptDES(string encryptString,string key)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(key);
byte[] rgbIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <returns></returns>
public static string EncryptDES(string encryptString)
{
return EncryptDES(encryptString, _encryptDES);
}
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="key">解密密钥,要求8位</param>
/// <returns></returns>
public static string DecryptDES(string decryptString, string key)
{
try
{
//默认密钥向量
byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
byte[] rgbKey = Encoding.UTF8.GetBytes(key);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <returns></returns>
public static string DecryptDES(string decryptString)
{
return DecryptDES(decryptString, _encryptDES);
}
#endregion
AES加密:
#region AES加密与解密
/// <summary>
/// AES加密
/// </summary>
/// <param name="str">要加密字符串</param>
/// <returns>返回加密后字符串</returns>
public static String EncryptAES(String str,string aeskey)
{
Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(aeskey);
Byte[] toEncryptArray = System.Text.UTF8Encoding.UTF8.GetBytes(str);
System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = System.Security.Cryptography.CipherMode.ECB;
rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateEncryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
/// <summary>
/// AES解密
/// </summary>
/// <param name="str">要解密字符串</param>
/// <returns>返回解密后字符串</returns>
public static String DecryptAES(String str, string aeskey)
{
Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(aeskey);
Byte[] toEncryptArray = Convert.FromBase64String(str);
System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = System.Security.Cryptography.CipherMode.ECB;
rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateDecryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return System.Text.UTF8Encoding.UTF8.GetString(resultArray);
}
#endregion