91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

項目總結-MD5的使用

發布時間:2020-07-23 18:23:41 來源:網絡 閱讀:735 作者:孤鶩111 欄目:編程語言

MD5算法是一種散列(hash)算法(摘要算法,指紋算法),不是一種加密算法。任何長度的任意內容都可以用MD5計算出散列值。

 
MD5長度一般是32位的16進制數字符串。
理論上,MD5值的個數是有限的,但是源數據是無限的,因此存在著不同的內容產生相同MD5值的概率。因此MD5算法不可逆,也就是只能得到內容對應的MD5值,無法由MD5值反推內容。但是對不同的內容產生相同MD5值的概率非常非常非常低!
 
MD5算法理論上是不可逆的,因此***的唯一辦法就是碰撞。
 
1)使用MD5進行對字符串的操作,具體代碼實現:
     using System.Security.Cryptography;//需要導入這個命名空間
......   
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入字符串,使用MD5加密 ...");
            string str = Console.ReadLine();
            string md5 = Md5ChuLiStr(str);
            Console.WriteLine(md5);
 
            Console.ReadKey();
        }
         private static string  Md5ChuLiStr(string msg)
        {
            //1.創建一個MD5對象
            MD5 md5 = MD5.Create();
 
            //2.把字符串變為一個byte數組
            //對于中文或者某些字符,采用不同的編碼生成的byte[]是不一樣的,
            //所以造成了采用不同編碼生成的md5值不一樣的情況。
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(msg);
 
            //3.將一個byte[]通過MD5計算得到一個新的byte[],新的byte[]就是計算md5后的結果。
            byte[] md5Buffer = md5.ComputeHash(buffer);
 
            //釋放資源
            md5.Clear();
 
            //4.將計算后的結果直接顯示為字符串
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < md5Buffer.Length; i++)
            {
                //x2:把每個數字轉換為16進制,并保留兩位數字。
                sb.Append(md5Buffer[i].ToString("x2"));
            }
            return sb.ToString();
        }
......
 
 
2)使用MD5進行對文件的操作,具體代碼實現:
     using System.Security.Cryptography;//需要導入這個命名空間
     using System.IO;//需要用到文件流等
...
       static void Main(string[] args)
        {
            Console.WriteLine("請輸入文件路徑,使用MD5加密 ...");
            string path = Console.ReadLine();
            string md5 = Md5ChuLiFile(path);
            Console.WriteLine(md5);
 
            Console.ReadKey();
        }
       private static string  Md5ChuLiFile (string path)
        {
            MD5 md5 = MD5.Create();
 
            using (FileStream fs = File.OpenRead(path))
            {
                byte[] md5Buffer = md5.ComputeHash(fs);//這里直接傳入文件流對象
                md5.Clear();
 
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < md5Buffer.Length; i++)
                {
                    sb.Append(md5Buffer[i].ToString("x2"));
                }
                return sb.ToString();
            }
        }
......
*:最后,產生的MD5值可以通過MD5計算器(CalcMD5.exe)進行對照。

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广河县| 仁怀市| 万山特区| 仙桃市| 绥德县| 民权县| 涟源市| 丰镇市| 武鸣县| 定兴县| 巩义市| 金塔县| 北安市| 许昌县| 深圳市| 永登县| 富阳市| 临邑县| 城口县| 永兴县| 呈贡县| 盐亭县| 沂水县| 济源市| 额尔古纳市| 正蓝旗| 临夏市| 浠水县| 阿图什市| 台北市| 利津县| 顺义区| 琼海市| 洮南市| 温宿县| 县级市| 濮阳市| 民勤县| 新余市| 梁平县| 平乡县|