最近项目中用到的加密方式
1 public class DesEncrypt 2 { 3 private static readonly byte[] _Key = ASCIIEncoding.ASCII.GetBytes("MDAPPDES"); 4 private static readonly string _MD5_Key = "MDAPPMD5"; 5 6 /// <summary> 7 /// DES加密字符串 8 /// </summary> 9 /// <param name="encryptString">待加密的字符串</param> 10 /// <param name="Key">密钥</param> 11 /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> 12 public static string EncryptDES(string encryptString) 13 { 14 try 15 { 16 byte[] Key = _Key; 17 byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); 18 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 19 des.Key = Key; 20 des.Mode = CipherMode.ECB; 21 MemoryStream mStream = new MemoryStream(); 22 CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(), CryptoStreamMode.Write); 23 cStream.Write(inputByteArray, 0, inputByteArray.Length); 24 cStream.FlushFinalBlock(); 25 return Convert.ToBase64String(mStream.ToArray()); 26 } 27 catch 28 { 29 throw; 30 } 31 } 32 33 /// <summary> 34 /// DES解密字符串 35 /// </summary> 36 /// <param name="decryptString">待解密的字符串</param> 37 /// <returns>解密成功返回解密后的字符串,失败返源串</returns> 38 public static string DecryptDES(string decryptString) 39 { 40 try 41 { 42 byte[] Key = _Key; 43 byte[] inputByteArray = Convert.FromBase64String(decryptString); 44 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 45 des.Key = Key; 46 des.Mode = CipherMode.ECB; 47 MemoryStream mStream = new MemoryStream(); 48 CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(), CryptoStreamMode.Write); 49 cStream.Write(inputByteArray, 0, inputByteArray.Length); 50 cStream.FlushFinalBlock(); 51 return Encoding.UTF8.GetString(mStream.ToArray()); 52 } 53 catch 54 { 55 throw; 56 } 57 } 58 59 ///MD5加密 60 public static string EncryptMD5(string pToEncrypt) 61 { 62 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 63 byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt); 64 des.Key = ASCIIEncoding.ASCII.GetBytes(_MD5_Key); 65 des.IV = ASCIIEncoding.ASCII.GetBytes(_MD5_Key); 66 MemoryStream ms = new MemoryStream(); 67 CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); 68 cs.Write(inputByteArray, 0, inputByteArray.Length); 69 cs.FlushFinalBlock(); 70 StringBuilder ret = new StringBuilder(); 71 foreach (byte b in ms.ToArray()) 72 { 73 ret.AppendFormat("{0:X2}", b); 74 } 75 ret.ToString(); 76 return ret.ToString(); 77 78 79 } 80 81 ///MD5解密 82 public static string DecryptMD5(string pToDecrypt) 83 { 84 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 85 86 byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; 87 for (int x = 0; x < pToDecrypt.Length / 2; x++) 88 { 89 int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); 90 inputByteArray[x] = (byte)i; 91 } 92 93 des.Key = ASCIIEncoding.ASCII.GetBytes(_MD5_Key); 94 des.IV = ASCIIEncoding.ASCII.GetBytes(_MD5_Key); 95 MemoryStream ms = new MemoryStream(); 96 CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); 97 cs.Write(inputByteArray, 0, inputByteArray.Length); 98 cs.FlushFinalBlock(); 99 100 StringBuilder ret = new StringBuilder(); 101 102 return System.Text.Encoding.Default.GetString(ms.ToArray()); 103 } 104 105 /// <summary> 106 /// 使用HASH算法加密, 无法解密 107 /// </summary> 108 /// <param name="key"></param> 109 /// <returns></returns> 110 public static string DecryptHASH(string value) 111 { 112 byte[] StrRes = Encoding.Default.GetBytes(value); 113 HashAlgorithm iSHA = new SHA1CryptoServiceProvider(); 114 StrRes = iSHA.ComputeHash(StrRes); 115 StringBuilder EnText = new StringBuilder(); 116 foreach (byte iByte in StrRes) 117 { 118 EnText.AppendFormat("{0:x2}", iByte); 119 } 120 return EnText.ToString(); 121 } 122 123 /// <summary> 124 /// 加密 125 /// </summary> 126 /// <param name="encryptString"></param> 127 /// <returns></returns> 128 public static string Base64Encode(string encryptString) 129 { 130 byte[] encbuff = System.Text.Encoding.UTF8.GetBytes(encryptString); 131 return Convert.ToBase64String(encbuff); 132 } 133 /// <summary> 134 /// 解密 135 /// </summary> 136 /// <param name="decryptString"></param> 137 /// <returns></returns> 138 public static string Base64Decode(string decryptString) 139 { 140 byte[] decbuff = Convert.FromBase64String(decryptString); 141 return System.Text.Encoding.UTF8.GetString(decbuff); 142 } 143 }
请方家指教!!!
浙公网安备 33010602011771号