为什么有的出来是大写,有的出来是小写?
出来的是小写:87cecfd9154e592c3a145ae57e2dd3a0
出来的是小写:87cecfd9154e592c3a145ae57e2dd3a0
public static string md5(String s)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s); //sbyte bytes
bytes = md5.ComputeHash(bytes);
md5.Clear();
string ret = "";
for (int i = 0; i < bytes.Length; i++)
{
ret += Convert.ToString(bytes[i], 16).PadLeft(2, ""0"");
}
return ret.PadLeft(32, ""0"");
}
出来的是大写:87CECFD9154E592C3A145AE57E2DD3A0
private string GetMd5(int code, string str)
{
string strmd5 = "";
byte[] result = Encoding.UTF8.GetBytes(str); //tbPass为输入密码的文本框 Encoding.Default.GetBytes(str);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(result);
string md5str = BitConverter.ToString(output).Replace("-", "");// BitConverter.ToString(output).Replace("-", "");//输出大写无符号整数
// md5str=output.ToString();
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
strmd5 = md5str.Substring(8, 16);
}
if (code == 32) //32位加密
{
strmd5 = md5str;
}
return strmd5;
}
解决方案:100分
Convert.ToString(bytes[i], 16) 是小写的
BitConverter.ToString(output) 是大写的
方法不同,结果不同很正常
BitConverter.ToString(output) 是大写的
方法不同,结果不同很正常