Автоматизация бизнеса

Пользовательский поиск

суббота, 14 июля 2012 г.

Как получить MD5 хеш файла, строки

MD5 (англ. Message Digest 5) — 128-битный алгоритм хеширования. На примере будет показано как получить хеш файла или строки.
Необходимо добавить пространства имен System.Security.Cryptography, System.IO в директиву using.

Возвращает MD5 хеш файла.

private string ComputeFilesMD5(string path)
        {
            using (FileStream fs = File.OpenRead(path))
            {
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] filebytes = new byte[fs.Length];
                fs.Read(filebytes, 0, (int)fs.Length);
                byte[] Sum = md5.ComputeHash(filebytes);
                string result = BitConverter.ToString(Sum).Replace("-", String.Empty);
                return result;
            }
        }

Получаем MD5 хеш строки


public string ComputeStringMD5Hash(string instr)
        {
            string strHash = string.Empty;

            foreach (byte b in new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(instr)))
            {
                strHash += b.ToString("X2");
            }
            return strHash;
        }

SHA-2 (англ. Secure Hash Algorithm Version 2 — безопасный алгоритм хеширования, версия 2) — собирательное название однонаправленных хеш-функций SHA-224, SHA-256, SHA-384 и SHA-512

Получаем SHA-256 хеш


            string rethash = "";            
            try           
            {
                SHA256 hash = SHA256.Create();     
                UTF8Encoding encoder = new UTF8Encoding();
                byte[] combined = encoder.GetBytes("Hello World");                
                hash.ComputeHash(combined);                
                foreach (byte b in hash.Hash)
                {
                    rethash += b.ToString("X2");
                }
            }            
            catch (Exception ex)            
            {                
                string strerr = "Error in HashCode : " + ex.Message;        
                MessageBox.Show(strerr);
            }


Комментариев нет:

Отправить комментарий