這篇文章主要介紹了淺談C#中Md5和Sha1兩種加密方式的相關(guān)資料,需要的朋友可以參考下
1.新建控制臺(tái)應(yīng)用程序
2.新建類(lèi) 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對(duì)象進(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("長(zhǎng)度:"+s.Md5().Length);
- Console.WriteLine("Sha1:" + s.Sha1());
- Console.WriteLine("長(zhǎng)度:" + s.Sha1().Length);
- Console.Read();
- }
- }
4.效果圖
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注