Code Bye

为什么有的出来是大写,有的出来是小写?

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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么有的出来是大写,有的出来是小写?