为什么有的出来是大写,有的出来是小写?
出来的是小写: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) 是大写的
方法不同,结果不同很正常