亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

項目總結-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

贵定县| 洛浦县| 鹤山市| 古蔺县| 奉新县| 建湖县| 留坝县| 灵璧县| 嘉黎县| 乐平市| 元朗区| 澄城县| 海南省| 交城县| 安阳县| 古浪县| 凤阳县| 龙泉市| 南雄市| 金山区| 会东县| 泸西县| 东至县| 五家渠市| 德安县| 洮南市| 元谋县| 文水县| 梧州市| 清水河县| 敦煌市| 舞阳县| 改则县| 河津市| 恩施市| 徐汇区| 杭州市| 普宁市| 海淀区| 侯马市| 邮箱|