1.新建控制台应用程序

2.新建类 EncryptHelper.cs

 1     public static class EncryptHelper
 2     {
 3         /// <summary>
 4         /// 基于Md5的自定义加密字符串方法:输入一个字符串,返回一个由32个字符组成的十六进制的哈希散列(字符串)。
 5         /// </summary>
 6         /// <param name="str">要加密的字符串</param>
 7         /// <returns>加密后的十六进制的哈希散列(字符串)</returns>
 8         public static string Md5(this string str)
 9         {
10             //将输入字符串转换成字节数组
11             var buffer = Encoding.Default.GetBytes(str);
12             //接着,创建Md5对象进行散列计算
13             var data = MD5.Create().ComputeHash(buffer);
14
15             //创建一个新的Stringbuilder收集字节
16             var sb = new StringBuilder();
17
18             //遍历每个字节的散列数据
19             foreach (var t in data)
20             {
21                 //格式每一个十六进制字符串
22                 sb.Append(t.ToString("X2"));
23             }
24
25             //返回十六进制字符串
26             return sb.ToString();
27         }
28
29         /// <summary>
30         /// 基于Sha1的自定义加密字符串方法:输入一个字符串,返回一个由40个字符组成的十六进制的哈希散列(字符串)。
31         /// </summary>
32         /// <param name="str">要加密的字符串</param>
33         /// <returns>加密后的十六进制的哈希散列(字符串)</returns>
34         public static string Sha1(this string str)
35         {
36             var buffer = Encoding.UTF8.GetBytes(str);
37             var data = SHA1.Create().ComputeHash(buffer);
38
39             var sb = new StringBuilder();
40             foreach (var t in data)
41             {
42                 sb.Append(t.ToString("X2"));
43             }
44
45             return sb.ToString();
46         }
47     }

3.修改 Program.cs 进行输出

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             const string s = "123456";
 6             Console.WriteLine("密码:"+s);
 7
 8             Console.WriteLine("Md5:"+s.Md5());
 9             Console.WriteLine("长度:"+s.Md5().Length);
10
11             Console.WriteLine("Sha1:" + s.Sha1());
12             Console.WriteLine("长度:" + s.Sha1().Length);
13
14             Console.Read();
15         }
16     }

View Code

4.效果图

转载于:https://www.cnblogs.com/liqingwen/p/4603278.html

C#:Md5和Sha1两种加密方式相关推荐

  1. C#下的两种加密方式MD5和DEC

    md5加密 /// <summary>     /// MD5加密     /// </summary>     /// <param name="toCryS ...

  2. PHP中的6种加密方式

    PHP中的6种加密方式 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str  --  原始字符串. raw ...

  3. Windows校验文件哈希hash的两种常用方式

    大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...

  4. MD5、AES、Jasypt加密方式的简要介绍与对比

    MD5.AES.Jasypt加密方式的简要介绍与对比 1 前言 目前做的项目中用的加密工具有:MD5.AES加密工具(旧的)及Jasypt加密工具(新增),对这三种加密工具的简要原理和应用做了整理.内 ...

  5. Web APi之认证(Authentication)两种实现方式【二】(十三)

    前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...

  6. 探究Redis两种持久化方式下的数据恢复

    对长期奋战在一线的后端开发人员来说,都知道redis有两种持久化方式RDB和AOF,虽说大家都知道这两种方式大概运作方式,但想必有实操的人不会太多. 这里是自己实操两种持久化方式的一点点记录. 先看以 ...

  7. wifi 的几种加密方式

    要想知道怎样才能保护好我们的无线网络,首先,就要先来了解一下主流的无线加密方式,也就是在无线路由器的安全设置中常常出现的WEP.WPA.WPA2以及WPA+WPA2这几种加密方式. WEP(Wired ...

  8. 一个计算机爱好者的不完整回忆(八)一种加密方式

    GB4,GW,FPE,当年老的DOS游戏玩家可能会有印象吧. 当年DOS命令刚学几堂课,就玩游戏了,有一个游戏叫天蚕变,俗称蜘蛛美女,就是用蜘蛛划线,当划走的区域达到一定百分比的时候就算过关,然后会出 ...

  9. FTP的两种登录方式

    在讲两种登录方式之前,还是先说说FTP是什么?FTP 即 文件传输协议(英语:File Transfer Protocol 的缩写)是一个用于计算机网络上在客户端和服务器之间进行文件传输的应用层协议. ...

  10. 数据传输安全的几种加密方式

    Android数据加密安全 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 Android数据加密之Des加密 Android数据加密之MD5加密 Andr ...

最新文章

  1. 【深度学习】Pytorch的深度神经网络剪枝应用
  2. 【计算机网络】网络层 : IP 数据报格式 ( IP 数据报首部格式 )
  3. 来自艾斯维尔的计算机科学系的期刊排行,研究生必备!
  4. 【Python基础】字符串专题总结
  5. java类使用其他类的变量_如何将java类中的变量加载到其他类
  6. q7goodies事例_Java 8 Friday Goodies:Lambda和排序
  7. Spring Cloud Hystrix的请求合并
  8. 详细讲解 委托和事件
  9. JavaFX中将FXML文件自动转换为Java代码
  10. libsuperuser
  11. 袁春风 计算机组成原理 chap4,精品计算机组成原理 [袁春风]chap4homework.pdf
  12. Linux Shell基础教程
  13. SPRAY 光谱光线追迹仿真软件
  14. 双目摄像机获取标定图片
  15. 您的计算机无法正常启动,3种简单的方法 修复错误 ‘您的电脑无法正常启动’...
  16. 理解Base64编码及实现编解码Base64
  17. Chapter 2 认识游戏
  18. AutoResetEvent 与 ManualResetEvent区别
  19. 【Steam VR 2.0】3. Skeleton Poser 自定义抓取手势的使用
  20. 优化OpenSearch的搜索结果

热门文章

  1. 29 条运维工程师必会实用 Linux 命令
  2. 如何在CentOS/RedHat下实现根据源码包创建rpm包
  3. 双十一真的是全年最便宜的么?
  4. 少讲大道理,多解决小问题
  5. 分布式系统理论(二):一致性协议Paxos
  6. 自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
  7. 专线维护 07/11
  8. 实验题目用正交多项式做小二乘曲线拟合
  9. Silverlight 操作Excel 中的进程资源释放问题(续)
  10. Box,( UVa, 1587 )