当前位置: 首页 > news >正文

C#:Md5和Sha1两种加密方式

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.效果图

相关文章:

  • 使用PHP输出中文JSON字符串
  • 2015年俄罗斯跨境电商市场分析[转]
  • IDC:中国安全市场发展潜力巨大
  • 长发及腰
  • AX 条码打印
  • BT原理分析
  • linux -- ubuntuserver 安装图形界面
  • 阅读小记3(《C编程专家》)
  • C# 获取web.config配置文件内容
  • APIX招聘
  • 性能测试
  • linux cmd
  • VS2010中的调试技巧
  • 关于最短增广路算法和连续最短增广路算法的操作步骤
  • 函数的封装
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 08.Android之View事件问题
  • 230. Kth Smallest Element in a BST
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Git学习与使用心得(1)—— 初始化
  • k8s如何管理Pod
  • Linux Process Manage
  • linux安装openssl、swoole等扩展的具体步骤
  • markdown编辑器简评
  • NSTimer学习笔记
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • React组件设计模式(一)
  • Vue 2.3、2.4 知识点小结
  • 入口文件开始,分析Vue源码实现
  • 小试R空间处理新库sf
  • Python 之网络式编程
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​什么是bug?bug的源头在哪里?
  • ​虚拟化系列介绍(十)
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (¥1011)-(一千零一拾一元整)输出
  • (HAL库版)freeRTOS移植STMF103
  • (第一天)包装对象、作用域、创建对象
  • (规划)24届春招和25届暑假实习路线准备规划
  • (算法)Game
  • (一)UDP基本编程步骤
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET CORE Aws S3 使用
  • .NET Framework .NET Core与 .NET 的区别
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net6使用Sejil可视化日志
  • .Net中间语言BeforeFieldInit
  • ;号自动换行
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • [acm算法学习] 后缀数组SA