giovedì 13 settembre 2007

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#

Nessun commento: