381 votes

Calculer la somme de contrôle MD5 pour un fichier

Je suis en utilisant iTextSharp pour lire le texte d'un fichier PDF. Cependant, il y a des fois je ne peut pas extraire le texte, parce que le fichier PDF contenant des images. J'ai télécharger les fichiers PDF de tous les jours, et je veux voir si le PDF a été modifié. Si le texte et la date de modification ne peut pas être obtenue, est un MD5 checksum le moyen le plus fiable pour savoir si le fichier a changé?

Si c'est, quelques exemples de code serait apprécié, parce que je n'ai pas beaucoup d'expérience avec la cryptographie.

878voto

Jon Skeet Points 692016

C'est très simple:

using (var md5 = MD5.Create())
{
    using (var stream = File.OpenRead(filename))
    {
        return md5.ComputeHash(stream);
    }
}

(Je crois qu' en fait le MD5 de mise en œuvre utilisées ne doit pas être éliminés, mais je serais probablement encore le faire de toute façon.)

Comment vous vous comparez les résultats par la suite est à vous; vous pouvez convertir le tableau d'octets en base64 par exemple, ou de comparer les octets directement. (Juste être conscient que les tableaux ne pas surcharger Equals. En utilisant base64 est plus simple pour obtenir le droit, mais un peu moins efficace si vous êtes vraiment intéressés seulement en comparant les valeurs de hachage.)

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