• C# MD5加密 2位宽度导致少了个0/多了个0 Base64加密


    MD5加密方法:

    public static string calculateDigest(string content, string secretkey)
    {
      string toSignContent = content + secretkey;
      MD5 md5 = MD5.Create();
      string md5Str = "";
      byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(toSignContent));
      // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
      for (int i = 0; i < s.Length; i++)
      {
        // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
        // 写X2,结果是35beb18e154178d35f40ecc3c204e370
        // 写X,结果是35beb18e154178d35f40ecc3c24e370,少了个0
        // 原因:这个是很常见的错误,你字节转换成字符串的时候要保证是2位宽度啊,某个字节为0转换成字符串的时候必须是00的,否则就会丢失位数啊。不仅是0,1~9也一样。

        // 参考:https://www.cnblogs.com/zuochanzi/p/7206083.html

        md5Str = md5Str + s[i].ToString("X2");
      }

      return Convert.ToBase64String(Encoding.GetEncoding("utf-8").GetBytes(md5Str.ToLower()));
    }

    Base64加密方法:
    //此处注意:md5Str大写和小写,经过Base64加密出的结果是不一样的

    Convert.ToBase64String(Encoding.GetEncoding("utf-8").GetBytes(md5Str))

  • 相关阅读:
    jQuery常用方法一览
    基于jQuery的AJAX和JSON实现纯html数据模板
    jQuery+ASP.NET的AJAX文件上传
    jquery 新建的元素事件绑定问题
    二、visual studio 2008 快捷键
    Sql Server表相关的语句
    使用临时表
    IIS如何启用Gzip压缩功能
    php5.2 的 php.ini 中文版
    joomla笔记——对joomla的初步认识
  • 原文地址:https://www.cnblogs.com/wa502/p/14908282.html
Copyright © 2020-2023  润新知