方式一:(与其他MD5算法在加密某些数据时结果不同,但只有该方法适用于百度云推送的MD5加密)
/// <summary>
/// MD5加密
/// </summary>
/// <param name="str">加密前字符串</param>
/// <returns>加密后字符串</returns>
public static string MD5Encrypt(string str)
{
StringBuilder strSignUpper = new StringBuilder();
int perIndex = 0;
for (int i = 0; i < str.Length; i++)
{
String c = str[i].ToString();
if (str[i] == '%')
{
perIndex = i;
}
if (i - perIndex == 1 || i - perIndex == 2)
{
c = c.ToUpper();
}
strSignUpper.Append(c);
}
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSignUpper.ToString(), "MD5").ToLower();
}
方式二:(与网上的MD5加密工具结果相同,不能用在百度云推送)
public static string MD5Encrypt(string str, int code)
{
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
}
else//32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
}
}