59 votes

Comment faire une somme de contrôle de fichier SHA1 en C #?

Comment utiliser le SHA1CryptoServiceProvider() sur un fichier pour créer une somme de contrôle SHA1 du fichier?

74voto

mgbowen Points 4952
 using (FileStream fs = new FileStream(@"C:\file\location", FileMode.Open))
using (BufferedStream bs = new BufferedStream(fs))
{
    using (SHA1Managed sha1 = new SHA1Managed())
    {
        byte[] hash = sha1.ComputeHash(bs);
        StringBuilder formatted = new StringBuilder(2 * hash.Length);
        foreach (byte b in hash)
        {
            formatted.AppendFormat("{0:X2}", b);
        }
    }
}
 

formatted contient la représentation sous forme de chaîne du hachage SHA-1. En outre, en utilisant un FileStream au lieu d’un tampon d’octets, ComputeHash calcule le hachage en morceaux, de sorte que vous n’aurez pas à charger le fichier entier en une seule fois, ce qui est utile pour gros fichiers.

61voto

Ben Lakey Points 5454

Avec la méthode ComputeHash. Vois ici:

ComputeHash

Exemple d'extrait:

 using(var cryptoProvider = new SHA1CryptoServiceProvider())
{
    string hash = BitConverter
            .ToString(cryptoProvider.ComputeHash(buffer));

    //do something with hash
}
 

Où tampon est le contenu de votre fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X