• c#Md5 32位加密结果少了两个0的原因


      今天碰到一个问题, md5加密之后与网站上md5加密少了两位, 仔细看区别是少了两个零

    E1ADC3949BA59ABBE56E057F2F883E    我的md5 
    E10ADC3949BA59ABBE56E057F20F883E  第三方网站的加密  

    明显第一个和第二个 少了两个零

    原因:

    这个是很常见的错误,你字节转换成字符串的时候要保证是2位宽度啊,某个字节为0转换成字符串的时候必须是00的,否则就会丢失位数啊。不仅是0,1~9也一样。
    我的代码:
        public static string encrypt(string str)
            {
                string cl = str;
                string pwd = "";
                MD5 md5 = MD5.Create();
                byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
                for (int i = 0; i < s.Length; i++)
                {
                    pwd = pwd + s[i].ToString("X");
                }
                return pwd;
            }
            #endregion
        }

    把上边 红框内的代码换成X2 问题解决

     pwd = pwd + s[i].ToString("X2");
  • 相关阅读:
    关于日期
    修改video标签自带按钮的默认样式
    vue相关
    手机
    国内优秀npm镜像
    一些技能整理
    小程序
    $('.mydiv>ul')和$('.mydiv ul')的不同
    Python 字符编码
    Python 正则表达式 补充
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/7206083.html
Copyright © 2020-2023  润新知