private MD5CrypType GetMD5CrypType() { try { if (string.IsNullOrEmpty(cbxMD5Type.Text)) { throw new Exception("必须选择加密方式!"); } MD5CrypType mc = (MD5CrypType)Enum.Parse(typeof(MD5CrypType), cbxMD5Type.Text.Replace("(", "").Replace(")", "").Replace("$", "dollar").Replace(".", "dot")); return(mc); } catch (Exception) { throw; } }
public static string MD5Crypt(string txt, MD5CrypType mType, string salt, int outType = 0, Encoding encoding = null) { try { encoding = encoding ?? Encoding.UTF8; string pass = ""; switch (mType) { case MD5CrypType.md5pass: pass = MD32Crypt(txt, encoding); break; case MD5CrypType.md5md5pass: pass = MD32Crypt(MD32Crypt(txt, encoding), encoding); break; case MD5CrypType.md5dollarpassdotdollarsalt: pass = MD32Crypt(txt + salt, encoding); break; case MD5CrypType.md5dollarsaltdotdollarpass: pass = MD32Crypt(salt + pass, encoding); break; case MD5CrypType.md5md5dollarpassdotdollarsalt: pass = MD32Crypt(MD32Crypt(txt, encoding) + salt, encoding); break; case MD5CrypType.md5md5dollarsaltdotdollarpass: pass = MD32Crypt(MD32Crypt(salt, encoding) + txt, encoding); break; case MD5CrypType.md5dollarsaltdotdollarpassdotdollarsalt: pass = MD32Crypt(salt + txt + salt, encoding); break; case MD5CrypType.md5dollarsaltdotmd5dollarpass: pass = MD32Crypt(salt + MD32Crypt(txt, encoding), encoding); break; case MD5CrypType.md5md5dollarpassdotmd5dollarsalt: pass = MD32Crypt(MD32Crypt(txt, encoding) + MD32Crypt(salt, encoding), encoding); break; case MD5CrypType.md5md5dollarsaltdotmd5dollarpass: pass = MD32Crypt(MD32Crypt(salt, encoding) + MD32Crypt(txt, encoding), encoding); break; default: pass = ""; break; } switch (outType) { case 0: //32大 pass = pass.ToUpper(); break; case 1: //32小 pass = pass.ToLower(); break; case 2: //16大 pass = pass.Substring(8, 16).ToUpper(); break; case 3: //16小 pass = pass.Substring(8, 16).ToLower(); break; case 4: //base64 pass = pass.ToUpper(); pass = Convert.ToBase64String(encoding.GetBytes(pass)); break; default: break; } return(pass); } catch (Exception) { throw; } }