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

浅谈C#中Md5和Sha1两种加密方式

程序员文章站 2023-12-09 20:14:21
1.新建控制台应用程序 2.新建类 encrypthelper.cs public static class encrypthelper { /// &...

1.新建控制台应用程序

2.新建类 encrypthelper.cs

public static class encrypthelper
{
  /// <summary>
  /// 基于md5的自定义加密字符串方法:输入一个字符串,返回一个由32个字符组成的十六进制的哈希散列(字符串)。
  /// </summary>
  /// <param name="str">要加密的字符串</param>
  /// <returns>加密后的十六进制的哈希散列(字符串)</returns>
  public static string md5(this string str)
  {
    //将输入字符串转换成字节数组
    var buffer = encoding.default.getbytes(str);
    //接着,创建md5对象进行散列计算
    var data = md5.create().computehash(buffer);

    //创建一个新的stringbuilder收集字节
    var sb = new stringbuilder();

    //遍历每个字节的散列数据 
    foreach (var t in data)
    {
      //格式每一个十六进制字符串
      sb.append(t.tostring("x2"));
    }

    //返回十六进制字符串
    return sb.tostring();
  }

  /// <summary>
  /// 基于sha1的自定义加密字符串方法:输入一个字符串,返回一个由40个字符组成的十六进制的哈希散列(字符串)。
  /// </summary>
  /// <param name="str">要加密的字符串</param>
  /// <returns>加密后的十六进制的哈希散列(字符串)</returns>
  public static string sha1(this string str)
  {
    var buffer = encoding.utf8.getbytes(str);
    var data = sha1.create().computehash(buffer);

    var sb = new stringbuilder();
    foreach (var t in data)
    {
      sb.append(t.tostring("x2"));
    }
    
    return sb.tostring();
  }
}

3.修改 program.cs 进行输出

class program
{
  static void main(string[] args)
  {
    const string s = "123456";
    console.writeline("密码:"+s);

    console.writeline("md5:"+s.md5());
    console.writeline("长度:"+s.md5().length);

    console.writeline("sha1:" + s.sha1());
    console.writeline("长度:" + s.sha1().length);

    console.read();
  }
}

4.效果图

浅谈C#中Md5和Sha1两种加密方式

以上所述就是本文的全部内容了,希望大家能够喜欢。