.Net--MD5加密


第一次寫博客  不知道怎么說什么

   我們就來聊聊  MD5加密碼

      由來

        MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest 開發出來,經MD2、MD3和MD4發展而來。

      作用

        是讓大容量信息在用數字簽名軟件簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個任意長度的字節串變換成一定長的大整數)。不管是MD2、MD4還是MD5,它們都需要獲得一個隨機長度的信息並產生一個128位的信息摘要。雖然這些算法的結構或多或少有些相似,但MD2的設計與MD4和MD5完全不同,那是因為MD2是為8位機器做過設計優化的,而MD4和MD5卻是面向32位的電腦。這三個算法的描述和C語言源代碼在Internet RFCs 1321中有詳細的描述,這是一份最權威的文檔,由Ronald L. Rivest在1992年8月向IETF提交。(說了這么多  其實我也不知道他說的什么)  簡單來講MD5 就是將用戶的密碼進行加密用來保護用戶的安全 (MD5是不可逆解密 除非暴力強解)
 
 介紹了這么久 我們開始進入正題咯       
    
 1         static void Main(string[] args)
 2         {
 3 
 4             //調用MD5Str  得到加密后字符串  202CB962AC59075B964B07152D234B70
 5             Console.WriteLine(MD5Str("123"));
 6 
 7         }
 8         /// <summary>
 9         /// 這是最基礎的MD5 加密
10         /// </summary>
11         /// <param name="password"></param>
12         /// <returns></returns>
13         public static string MD5Str(string password)
14         {
15             return  BitConverter.ToString(MD5.Create().ComputeHash(Encoding.Default.GetBytes(password))).Replace("-", "");
16 
17 
18         }

  一般的程序員認為 這樣就可以  其實還是有問題的  因為別人可以通過一些網站暴力破解 (http://www.cmd5.com/)這樣還是無法保證用戶的密碼安全,並沒有什么用 ,接下來就開始變異啦

 1       static void Main(string[] args)
 2         {
 3 
 4             //調用MD5Str  得到加密后字符串  202CB962AC59075B964B07152D234B70
 5             Console.WriteLine(MD5Str("123"));
 6             //調用MD5Str2 變異后  得到加密后字符串  20-2C-B9-62-AC-59-07-5B-96-4B-07-15-2D-23-4B-70
 7             Console.WriteLine(MD5Str2("123"));
 8 
 9         }
10         /// <summary>
11         /// 這是最基礎的MD5 加密
12         /// </summary>
13         /// <param name="password"></param>
14         /// <returns></returns>
15         public static string MD5Str(string password)
16         {
17             return  BitConverter.ToString(MD5.Create().ComputeHash(Encoding.Default.GetBytes(password))).Replace("-", "");
18 
19 
20         }
21         /// <summary>
22         /// 簡單的變異MD5
23         /// </summary>
24         /// <param name="password"></param>
25         /// <returns></returns>
26         public static string MD5Str2(string password)
27         {
28             return BitConverter.ToString(MD5.Create().ComputeHash(Encoding.Default.GetBytes(password))).Replace("X", "");
29 
30 
31         }

 就算是他暴力破解也要一定的時間 和 金錢

 還有第三種  你可以在里面自行加密碼

 1  // 在這里想怎么玩就這么玩        
 2 public static string MD5Str3(string password) { 
 3         
 4      
 5             MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
 6             byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(password));
 7             StringBuilder sBuilder = new StringBuilder();
 8             for (int i = 0; i < data.Length; i++)
 9             {
10                 sBuilder.Append(data[i].ToString("x2")+"1");
11             }
12             return sBuilder.ToString();
13        
14 
15         }

  總的來說 MD5還是挺好的 

 
 
  
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM