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

  • 相关阅读:
    【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(二)
    手势(Gesture)的增加和识别
    [转]C#自定义开关按钮控件--附带第一个私活项目截图
    当年的试用期周工作心得
    FREESWITCH SEESION
    基于三星ARM9(S3C2410)的交通违章抓拍系统的开发
    Apache Kafka: Next Generation Distributed Messaging System---reference
    How and Why Unsafe is Used in Java---reference
    基于keepalived对redis做高可用配置---转载
    Java获取真实的IP地址--转载
  • 原文地址:https://www.cnblogs.com/liqingwen/p/4603278.html
Copyright © 2020-2023  润新知