////// AES加密 /// public sealed class AESCrypt { ////// 加密 /// /// ///static public string Encode(string text) { byte[] key = new byte[] { 132, 149, 17, 104, 128, 101, 170, 180, 191, 28, 127, 149, 144, 121, 200, 130 }; byte[] iv = new byte[] { 198, 12, 49, 123, 101, 128, 103, 212, 112, 122, 133, 35, 150, 130, 210, 181 }; try { RijndaelManaged rijn = new RijndaelManaged(); ICryptoTransform trans = rijn.CreateEncryptor(key, iv); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, trans, CryptoStreamMode.Write); StreamWriter sw = new StreamWriter(cs); try { sw.Write(text); sw.Flush(); } finally { sw.Close(); } byte[] _text = ms.GetBuffer(); int k = 0; for (k = _text.Length - 1; k >= 0; k--) { if (_text[k] != 0) { break; } } int len = k + 1; if (len % 2 != 0) { //必须保证取的长度为偶数 len += 1; } return Convert.ToBase64String(ms.GetBuffer(), 0, len); } catch { return string.Empty; } } /// /// 解密 /// /// ///static public string Decode(string text) { byte[] key = new byte[] { 132, 149, 17, 104, 128, 101, 170, 180, 191, 28, 127, 149, 144, 121, 200, 130 }; byte[] iv = new byte[] { 198, 12, 49, 123, 101, 128, 103, 212, 112, 122, 133, 35, 150, 130, 210, 181 }; try { RijndaelManaged rijn = new RijndaelManaged(); ICryptoTransform trans = rijn.CreateDecryptor(key, iv); byte[] data = Convert.FromBase64String(text); MemoryStream ms = new MemoryStream(data); CryptoStream cs = new CryptoStream(ms, trans, CryptoStreamMode.Read); StreamReader sr = new StreamReader(cs); string r_data = string.Empty; try { r_data = sr.ReadToEnd(); } finally { sr.Close(); } return r_data; } catch (Exception ex) { return string.Empty; } } } /// /// SHA1摘要 /// public sealed class SHA1Crypt { ////// Base64编码 /// /// ///static public string MakeCode(string text) { UTF8Encoding utf8 = new UTF8Encoding(); SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider(); byte[] cb = utf8.GetBytes(text); byte[] sb = sha1.ComputeHash(cb); return Convert.ToBase64String(sb); } } /// /// MD5摘要 /// public sealed class MD5Crypt { ////// 32位编码 /// /// ///public string MakeCode(string text) { byte[] _bytes = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(text)); StringBuilder _result = new StringBuilder(); for (int i = 0; i < _bytes.Length; i++) { string _hex = _bytes[i].ToString("x"); if (_hex.Length == 1) { _result.Append("0"); } _result.Append(_hex); } return _result.ToString(); } }