浅谈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,加密
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