1 using System; 2 using System.Security.Cryptography; 3 using System.Text; 4 5 namespace ManageSystem.Core { 6 public static class CryptographyHelper { 7 /// <summary> 8 /// MD5加密字符串 WEB 9 /// </summary> 10 /// <param name="source">源字符串</param> 11 /// <returns>加密后的字符串</returns> 12 public string MD5(string source) { 13 return FormsAuthentication.HashPasswordForStoringInConfigFile(source, "MD5"); ; 14 } 15 /// <summary> 16 /// MD5 32位加密 17 /// </summary> 18 public static string MD5Encrypt32(string strCode) { 19 MD5 md5 = new MD5CryptoServiceProvider(); 20 byte[] t = md5.ComputeHash(Encoding.UTF8.GetBytes(strCode)); 21 StringBuilder sb = new StringBuilder(32); 22 for (int i = 0; i < t.Length; i++) { 23 sb.Append(t[i].ToString("x").PadLeft(2, '0')); 24 } 25 return sb.ToString(); 26 } 27 /// <summary> 28 /// MD5 16位加密 29 /// </summary> 30 public static string MD5Encrypt16(string strCode) { 31 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); 32 string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(strCode)), 4, 8); 33 t2 = t2.Replace("-", ""); 34 return t2; 35 } 36 37 // Methods 38 public static string TripleDESDecrypt(string cipherString, string key, bool useHashing) { 39 byte[] buffer; 40 byte[] inputBuffer = Convert.FromBase64String(cipherString); 41 //string key = "johnny depp"; 42 if (useHashing) { 43 MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider(); 44 buffer = provider.ComputeHash(Encoding.UTF8.GetBytes(key)); 45 provider.Clear(); 46 } 47 else { 48 buffer = Encoding.UTF8.GetBytes(key); 49 } 50 TripleDESCryptoServiceProvider tripleDesProvider = new TripleDESCryptoServiceProvider(); 51 tripleDesProvider.Key = buffer; 52 tripleDesProvider.Mode = CipherMode.ECB; 53 tripleDesProvider.Padding = PaddingMode.PKCS7; 54 byte[] bytes = tripleDesProvider.CreateDecryptor().TransformFinalBlock(inputBuffer, 0, inputBuffer.Length); 55 tripleDesProvider.Clear(); 56 return Encoding.UTF8.GetString(bytes); 57 } 58 59 public static string TripleDESEncrypt(string toEncrypt, string key, bool useHashing) { 60 byte[] buffer; 61 byte[] bytes = Encoding.UTF8.GetBytes(toEncrypt); 62 //string key = "johnny depp"; 63 if (useHashing) { 64 MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider(); 65 buffer = provider.ComputeHash(Encoding.UTF8.GetBytes(key)); 66 provider.Clear(); 67 } 68 else { 69 buffer = Encoding.UTF8.GetBytes(key); 70 } 71 TripleDESCryptoServiceProvider tripleDesProvider = new TripleDESCryptoServiceProvider(); 72 tripleDesProvider.Key = buffer; 73 tripleDesProvider.Mode = CipherMode.ECB; 74 tripleDesProvider.Padding = PaddingMode.PKCS7; 75 byte[] inArray = tripleDesProvider.CreateEncryptor().TransformFinalBlock(bytes, 0, bytes.Length); 76 tripleDesProvider.Clear(); 77 return Convert.ToBase64String(inArray, 0, inArray.Length); 78 } 79 } 80 }