国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

【.NET】MD5的用法(對文件、字符串)

2019-11-17 01:26:42
字體:
來源:轉載
供稿:網(wǎng)友
【.NET】md5的用法(對文件、字符串)
using System;using System.IO;using System.Security.Cryptography;using System.Text;namespace ConsoleApp_PReventFileTampering{    class Program    {        static void Main(string[] args)        {            //TestGetFileHash();            TestGetMd5();        }        #region 通過Hash值來驗證文件是否被篡改        public static void TestGetFileHash()        {            string fileHash = "";            while (true)            {                fileHash = GetFileHash(@"C:/error.txt");                Console.WriteLine("文件MD5-HASH值為:{0}", fileHash);                Console.ReadKey();                //手動修改文件試試,HASH值會變化                //手動將剛才的修改恢復,HASH值會還原            }        }        /// <summary>        /// 通過Hash值來驗證文件是否被篡改        /// </summary>        /// <param name="argFilePath">文件路徑</param>        /// <returns>輸出Hash值</returns>        public static string GetFileHash(string argFilePath)        {            using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())            using (FileStream fs = new FileStream(argFilePath, FileMode.Open, Fileaccess.Read, FileShare.Read))            {                return BitConverter.ToString(md5.ComputeHash(fs)).Replace("-", "");            }        }        #endregion        #region 對字符串用MD5加密        public static void TestGetMd5()        {            while (true)            {                Console.WriteLine("輸入要加密的字符串:");                string input = Console.ReadLine();                string md5 = GetMd5Hash2(input);                Console.WriteLine("輸出的加密字符串為:" + md5 + "/r/n");                Console.ReadLine();            }        }        /// <summary>        /// 將字符串轉換成MD5值存儲        /// 【直接使用本方法加密MD5是不安全的,可以通過窮舉法獲得加密前的字符串】        /// </summary>        /// <param name="argInput">輸入的字符串</param>        /// <returns>輸出的MD5值</returns>        public static string GetMd5Hash(string argInput)        {            using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())            {                return BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(argInput))).Replace("-", "");            }        }        /// <summary>        /// 多次使用MD5值以及內(nèi)部拼hashKey法,增加窮舉破解的難度        /// </summary>        /// <param name="argInput">輸入的字符串</param>        /// <returns>輸出特殊處理過的MD5值</returns>        public static string GetMd5Hash2(string argInput)        {            string hashKey = "Kae@#$@!,.Js+{f>.294oE";            using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())            {                string hashCode = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(argInput)))                    .Replace("-", "")                      + BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(hashKey)))                    .Replace("-", "");                return BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(hashCode))).Replace("-", "");            }        }        #endregion    }}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 高平市| 股票| 正蓝旗| 高雄市| 咸丰县| 卓尼县| 安达市| 秭归县| 岳阳县| 南充市| 剑阁县| 蒙山县| 广宗县| 桦南县| 扶风县| 淳安县| 高唐县| 社会| 五常市| 色达县| 瓦房店市| 民丰县| 迁西县| 调兵山市| 沧源| 两当县| 黄冈市| 大田县| 静海县| 铜川市| 新民市| 易门县| 马边| 广南县| 正镶白旗| 马关县| 孟津县| 临安市| 深水埗区| 临潭县| 福州市|