using System.Security.Cryptography;
/// <summary>
/// MD5 32位加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
private string UserMd5(string str)
{
//return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");
string cl = str;
string pwd = "";
MD5 md5 = MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
pwd = pwd + s[i].ToString("x2");
}
return pwd;
}
3DES加解密:
using System.Security.Cryptography;
public static string DESDecrypt(string strCipher, string strDESKey, string strDESIV) { byte[] bytes = Encoding.UTF8.GetBytes(strDESKey); byte[] buffer2 = Encoding.UTF8.GetBytes(strDESIV); byte[] buffer = Convert.FromBase64String(strCipher); TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider(); provider.Key = bytes; provider.IV = buffer2; provider.Mode = CipherMode.CBC; provider.Padding = PaddingMode.PKCS7; MemoryStream stream = new MemoryStream(buffer); CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Read); StreamReader reader = new StreamReader(stream2); string str = reader.ReadLine(); reader.Close(); stream2.Close(); stream.Close(); return str; } |
public static string DESEncrypt(string pToEncrypt, string sKey, string sKeyIV) { TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider(); byte[] bytes = Encoding.UTF8.GetBytes(pToEncrypt); provider.Key = Encoding.UTF8.GetBytes(sKey); provider.IV = Encoding.UTF8.GetBytes(sKeyIV); provider.Mode = CipherMode.CBC; provider.Padding = PaddingMode.PKCS7; MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write); StreamWriter writer = new StreamWriter(stream2); writer.WriteLine(pToEncrypt); writer.Close(); stream2.Close(); byte[] inArray = stream.ToArray(); stream.Close(); return Convert.ToBase64String(inArray); }