Click here to Skip to main content
15,881,791 members
Articles / Desktop Programming / Windows Forms
Article

Get MD5 and SHA-1 (SHA1) of any file

Rate me:
Please Sign up or sign in to vote.
3.62/5 (40 votes)
11 Feb 2005MIT 136.1K   2.8K   58   11
Get file's hash (SHA-1, MD5) - This program needs .NET Framework 1.1.

Sample Image - DT_File_Hasher.jpg

Introduction

With this program, after you click on Open File, you can select any file and after clicking on Open button, you will get MD5 and SHA-1 (SHA1) files' hash. This program is very useful for somebody who wants to get and save some important files' hash. You must note that, if somebody changes even a bit of some content file, the file's hash will be changed. So try it and enjoy it!

For this application, I created a class for getting MD5 and SHA-1 files' hash:

C#
namespace IranianExperts
{
 public sealed class DTHasher
 {
  private DTHasher(){}

  private static byte[] ConvertStringToByteArray(string data)
  {
   return(new System.Text.UnicodeEncoding()).GetBytes(data);
  }

  private static System.IO.FileStream GetFileStream(string pathName)
  {
   return(new System.IO.FileStream(pathName, System.IO.FileMode.Open, 
             System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite));
  }

  public static string GetSHA1Hash(string pathName)
  {
   string strResult = "";
   string strHashData = "";

   byte[] arrbytHashValue;
   System.IO.FileStream oFileStream = null;

   System.Security.Cryptography.SHA1CryptoServiceProvider oSHA1Hasher=
              new System.Security.Cryptography.SHA1CryptoServiceProvider();

   try
   {
    oFileStream = GetFileStream(pathName);
    arrbytHashValue = oSHA1Hasher.ComputeHash(oFileStream);
    oFileStream.Close();

    strHashData = System.BitConverter.ToString(arrbytHashValue);
    strHashData = strHashData.Replace("-", "");
    strResult = strHashData;
   }
   catch(System.Exception ex)
   {
    System.Windows.Forms.MessageBox.Show(ex.Message, "Error!", 
             System.Windows.Forms.MessageBoxButtons.OK, 
             System.Windows.Forms.MessageBoxIcon.Error, 
             System.Windows.Forms.MessageBoxDefaultButton.Button1);
   }

   return(strResult);
  }

  public static string GetMD5Hash(string pathName)
  {
   string strResult = "";
   string strHashData = "";

   byte[] arrbytHashValue;
   System.IO.FileStream oFileStream = null;

   System.Security.Cryptography.MD5CryptoServiceProvider oMD5Hasher=
              new System.Security.Cryptography.MD5CryptoServiceProvider();

   try
   {
    oFileStream = GetFileStream(pathName);
    arrbytHashValue = oMD5Hasher.ComputeHash(oFileStream);
    oFileStream.Close();

    strHashData = System.BitConverter.ToString(arrbytHashValue);
    strHashData = strHashData.Replace("-", "");
    strResult = strHashData;
   }
   catch(System.Exception ex)
   {
    System.Windows.Forms.MessageBox.Show(ex.Message, "Error!", 
               System.Windows.Forms.MessageBoxButtons.OK, 
               System.Windows.Forms.MessageBoxIcon.Error, 
               System.Windows.Forms.MessageBoxDefaultButton.Button1);
   }

   return(strResult);
  }
 }
}

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
Web Developer Sematec Ins.
Iran (Islamic Republic of) Iran (Islamic Republic of)
My experiences are:

HTML 5.0, CSS 3.0
JQuery, Angular JS, Bootstrap

MVC 5.0, WEB API, c#

My Site URLs:
http://www.IranianExperts.ir
http://www.IranianExperts.com

My Yahoo Group URL: http://groups.yahoo.com/group/iranianexperts

Mobile: 0098-912-108-7461
Address: Tehran, Tehran, Iran

Comments and Discussions

 
QuestionThank you from Mexico Pin
demon40719-Jun-18 15:45
demon40719-Jun-18 15:45 
QuestionThank you Pin
Gun Gun Febrianza3-Oct-12 15:30
Gun Gun Febrianza3-Oct-12 15:30 
GeneralMy vote of 5 Pin
Gun Gun Febrianza3-Oct-12 15:29
Gun Gun Febrianza3-Oct-12 15:29 
GeneralNice! Pin
metator20-Sep-11 6:37
metator20-Sep-11 6:37 
GeneralMSj Pin
msj383069921-Jan-09 2:15
msj383069921-Jan-09 2:15 
GeneralThanks Pin
Namazi4-Jan-08 23:04
Namazi4-Jan-08 23:04 
GeneralCools Pin
Chaudhary5-Mar-06 5:00
Chaudhary5-Mar-06 5:00 
GeneralProgressbar Pin
Anonymous16-Mar-05 20:46
Anonymous16-Mar-05 20:46 
Generalwelldone Pin
GhazalAssadipour12-Feb-05 2:40
sussGhazalAssadipour12-Feb-05 2:40 
That was just great sir !!Smile | :)
GeneralThanks Pin
Mark Hancock11-Feb-05 18:35
Mark Hancock11-Feb-05 18:35 
GeneralWould be better with more documentation Pin
RayD11-Feb-05 7:06
RayD11-Feb-05 7:06 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.