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

作者:hebedich 时间:2023-04-01 20:25:11 

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两种加密方式

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

标签:C#,Md5,Sha1,加密
0
投稿

猜你喜欢

  • java对double数组排序示例分享

    2022-07-13 03:22:14
  • C#中datagridview使用tooltip控件显示单元格内容的方法

    2022-04-15 12:23:23
  • Java创建对象(显式创建和隐含创建)

    2022-10-26 13:58:33
  • 用Java实现简单ATM机功能

    2023-05-10 13:36:03
  • C#写入XML文档

    2022-03-21 18:08:33
  • Maven中央仓库发布的实现方法

    2023-12-09 07:15:06
  • 浅谈spring容器中bean的初始化

    2023-11-25 21:25:40
  • C#异常捕获机制图文详解

    2023-05-22 19:39:20
  • java web上传文件和下载文件代码片段分享

    2023-10-04 19:50:50
  • Android 自定义输入支付密码的软键盘实例代码

    2021-08-09 11:41:43
  • Hook实现Android 微信、陌陌 、探探位置模拟(附源码下载)

    2022-11-14 14:44:43
  • Unity实现切割图集工具

    2021-07-03 23:14:57
  • Android获取SDcard目录及创建文件夹的方法

    2022-03-03 04:16:31
  • Java调取创蓝253短信验证码的实现代码

    2021-11-05 00:48:10
  • Spring不能注入Static变量的原因及Spring注入静态变量

    2023-11-24 04:16:36
  • SpringBoot集成Mybatis-plus并实现自动生成相关文件的示例代码

    2023-08-15 04:12:46
  • Servlet注解之@WebInitParam多个InitParam的使用

    2023-08-04 13:43:01
  • c# webapi 配置swagger的方法

    2022-03-21 23:38:19
  • java8中Stream的使用以及分割list案例

    2022-08-09 10:08:48
  • Unity3D绘制地形的实现方法

    2022-12-01 01:06:46
  • asp之家 软件编程 m.aspxhome.com