110,537
社区成员
发帖
与我相关
我的任务
分享
string pwd = Md5Pwd(Pwd0).ToLower();
public string Md5Pwd(string strText)
{
string charset = "utf-8";
bool Is32Bit = true;
string PwdKey = System.Configuration.ConfigurationManager.AppSettings["NewPayPwdKey"].Trim().ToString();
try
{
strText += PwdKey;
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
string Md5Val = BitConverter.ToString(MD5.ComputeHash(Encoding.GetEncoding(charset).GetBytes(strText))).Replace("-", "").ToUpper();
if (!Is32Bit)
{
Md5Val = Md5Val.Substring(8, 16);
}
if (Is32Bit)
{
string before = Md5Val.Substring(0, 8);
string middle = Md5Val.Substring(8, 16);
string last = Md5Val.Substring(Md5Val.Length - 8);
Md5Val = last + before + middle;
}
return Md5Val;
}
catch (Exception ex)
{
string Errinfo = ex.Message;
return string.Empty;
}
}
虽然把哈希叫密文有点不妥,不过这个程序得出的“密文”和常规MD5的“密文”也只有字节顺序的差异吧
if (Is32Bit) { string before = Md5Pwd.Substring(0, 8); string middle = Md5Pwd.Substring(8, 16); string last = Md5Val.Substring(Md5Pwd.Length - 8); Md5Pwd = middle + last + before; }