欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET Core MD5加密 32位和16位

程序员文章站 2022-07-02 12:46:29
原文地址:https://www.cnblogs.com/oorz/p/8878491.html ......
public class md5help
{
  //此代码示例通过创建哈希字符串适用于任何 md5 哈希函数 (在任何平台) 上创建 32 个字符的十六进制格式哈希字符串官网案例改编
  /// <summary>
  ///获取32位md5加密
  /// </summary>
  /// <param name="source">待解密的字符串</param>
  /// <returns></returns>
  public static string get32md5(string source)
  {
    using (md5 md5hash = md5.create())
    {
      byte[] data = md5hash.computehash(encoding.utf8.getbytes(source + md5key));
      stringbuilder sbuilder = new stringbuilder();
      for (int i = 0; i < data.length; i++)
      {
      sbuilder.append(data[i].tostring("x2"));
      }

      string hash = sbuilder.tostring();
      return hash.toupper();
    }
  }
  //这样容易解的密码变的更难解=无解   static string md5key = "yi0epm!*af";   /// <summary>   /// 获取16位md5加密   /// </summary>   /// <param name="source">待解密的字符串</param>   /// <returns></returns>   public static string get16md5(string source)   {     using (md5 md5hash = md5.create())     {       byte[] data = md5hash.computehash(encoding.utf8.getbytes(source + md5key));       //转换成字符串,并取9到25位       string sbuilder = bitconverter.tostring(data, 4, 8);       //bitconverter转换出来的字符串会在每个字符中间产生一个分隔符,需要去除掉       sbuilder = sbuilder.replace("-", "");       return sbuilder.tostring().toupper();     }   } }

 

 

 

原文地址: