Calcolo dell'hash MD5 di un file con C#

In molti siti quando prendiamo un file è a disposizione un altro file contenente l'hash che ne certifica l’integrità.
Su .NET è molto semplice produrre tale chiave, con l'esempio allegato si può provare a calcolare l'hash di un file e poi a modificarlo, si potrà constatare che se il file contiene anche un solo carattere diverso l'hash risulterà diverso.

 
 

/*

 * Creato da SharpDevelop.

 * Utente: Luciano

 * Data: 13/09/2007

 * Ora: 17.38

 *

 * To change this template use Tools | Options | Coding | Edit Standard Headers.

 */

 

using System;

 

namespace CalcoloMD5

{

       /// <summary>

       /// Description of GeneraMD5.

       /// </summary>

       public class GeneraMD5

       {

             public GeneraMD5()

             {

                   

             }

             public static string CalcolaMD5Hash(string pFileName)
            
{
               // definizione stringa valore di ritorno
              
string retValue = string.Empty;
              
// generiamo uno stream a partire da un file che rimane in ram
              
// fino a quando non abbiamo concluso il calcolo
              
// il token using consente di aprire e chiudere correttamente
              
// lo stream delimitando l'area di scope
              
// così il GC lavora bene
              
using(System.IO.FileStream fs = System.IO.File.OpenRead(pFileName))
              
{
                    
// definizione del nostro tipo
                    
System.Security.Cryptography.MD5 sscMD5 = System.Security.Cryptography.MD5.Create();
                    
// recuperiamo i bytes dell'hash
                    
byte[] mHash = sscMD5.ComputeHash(fs);
                    
// conversione a 64 bit
                    
retValue = Convert.ToBase64String(mHash);

                }
               
return retValue;           

           }

       }

}

Esempio realizzato con C#

Print | posted on venerdì 14 settembre 2007 01:16

Feedback

# re: Calcolo dell'hash MD5 di un file con C#

Left by Merlin at 13/09/2007 19:33
Gravatar .Create() : this is a Delphi way, not a C#, your code can't compile.
"new MD5()" can't work too cause MD5 is an abstract class and can't be used to create instances.

so, working code is :

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

# re: Calcolo dell'hash MD5 di un file con C#

Left by Luciano Bastianello at 14/09/2007 01:18
Gravatar You are wrong.
The method ".Create()" exists!
I add a project sample.

# Hash MD5 di un file | hilpers

Left by Pingback/TrackBack at 21/01/2009 17:10
Gravatar Hash MD5 di un file | hilpers

# re: Calcolo dell'hash MD5 di un file con C#

Left by paolo at 21/12/2010 20:34
Gravatar Hash MD5 di un file

Your comment:





 
Please add 8 and 2 and type the answer here:

Copyright © Luciano Bastianello

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski