欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談C#中Md5和Sha1兩種加密方式

 更新時(shí)間:2015年07月10日 10:55:37   投稿:hebedich  
這篇文章主要介紹了淺談C#中Md5和Sha1兩種加密方式的相關(guān)資料,需要的朋友可以參考下

1.新建控制臺應(yīng)用程序

2.新建類 EncryptHelper.cs

public static class EncryptHelper
{
  /// <summary>
  /// 基于Md5的自定義加密字符串方法:輸入一個(gè)字符串,返回一個(gè)由32個(gè)字符組成的十六進(jìn)制的哈希散列(字符串)。
  /// </summary>
  /// <param name="str">要加密的字符串</param>
  /// <returns>加密后的十六進(jìn)制的哈希散列(字符串)</returns>
  public static string Md5(this string str)
  {
    //將輸入字符串轉(zhuǎn)換成字節(jié)數(shù)組
    var buffer = Encoding.Default.GetBytes(str);
    //接著,創(chuàng)建Md5對象進(jìn)行散列計(jì)算
    var data = MD5.Create().ComputeHash(buffer);

    //創(chuàng)建一個(gè)新的Stringbuilder收集字節(jié)
    var sb = new StringBuilder();

    //遍歷每個(gè)字節(jié)的散列數(shù)據(jù) 
    foreach (var t in data)
    {
      //格式每一個(gè)十六進(jìn)制字符串
      sb.Append(t.ToString("X2"));
    }

    //返回十六進(jìn)制字符串
    return sb.ToString();
  }

  /// <summary>
  /// 基于Sha1的自定義加密字符串方法:輸入一個(gè)字符串,返回一個(gè)由40個(gè)字符組成的十六進(jìn)制的哈希散列(字符串)。
  /// </summary>
  /// <param name="str">要加密的字符串</param>
  /// <returns>加密后的十六進(jìn)制的哈希散列(字符串)</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 進(jìn)行輸出

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

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

最新評論