Explication détaillée de la façon dont C# obtient les fichiers MD5 et SHA1

迷茫
Libérer: 2017-03-26 16:32:49
original
1263 Les gens l'ont consulté

Quand j'ai commencé à apprendre la programmation, j'ai toujours pensé à écrire moi-même quelques petits gadgets logiciels.

Et voici la vérification classique du fichier MD5, avec un SHA1 ajouté d'ailleurs.

Lors du téléchargement de quelque chose sur Internet, l'auteur fournira la valeur MD5.

Sa fonction est qu'après avoir téléchargé le logiciel, nous pouvons effectuer une vérification MD5 sur le fichier téléchargé pour nous assurer que le fichier que nous obtenons est le même que celui fourni par le site.

Vous avez donc besoin d'un outil de vérification MD5, alors allez sur Baidu pour le trouver, mais il va sans dire que les sites de téléchargement nationaux... il est difficile de se prémunir contre les éléments groupés.

Donc, en tant que programmeur, écrivez-en un vous-même.

La principale exigence pour analyser ce gadget est

1. Recherchez le fichier en fonction du chemin

2 Obtenez MD5

3. 🎜>

Un petit outil très simple,

La première méthode consiste à utiliser directement le constructeur de la classe FileInfo pour transmettre le chemin. Parce que vous pouvez glisser et déposer des fichiers directement sur la console, c'est très pratique. .

Il est à noter que s'il y a des espaces dans le chemin, une erreur sera signalée.

Dans cette méthode, s représente le chemin du fichier entrant

static void GetFile(string s)
        {
            try
            {
                FileInfo fi = new FileInfo(s);
                Console.WriteLine("文件路径:{0}", s);
                Console.WriteLine("文件名称:{0}", fi.Name.ToString());
                Console.WriteLine("文件类型:{0}", fi.Extension.ToString());
                Console.WriteLine("文件大小:{0} K", fi.Length / 1024);
                Console.WriteLine("文件创建时间:{0}", fi.CreationTime.ToString());
                Console.WriteLine("上次访问时间:{0}", fi.LastAccessTime.ToString());
                Console.WriteLine("上次写入时间:{0}", fi.LastWriteTime.ToString());
            }
            catch (Exception ex) 
            {
                Console.WriteLine(ex.Message);
            }
        }
Copier après la connexion
La deuxième méthode obtient la valeur MD5 Dans cette méthode, s représente le chemin du fichier entrant

MD5. Traitez l'intégralité du fichier comme un message texte volumineux et générez ce résumé de message MD5 unique grâce à son algorithme de transformation de chaîne irréversible.

static void GetMD5(string s)
        {
            try
            {
                FileStream file = new FileStream(s,FileMode.Open);
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] retval = md5.ComputeHash(file);
                file.Close();

                StringBuilder sc = new StringBuilder();
                for (int i = 0 ; i<retval.Length ; i++ )
                {
                    sc.Append(retval[i].ToString("x2"));
                }
                Console.WriteLine("文件MD5:{0}",sc);
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Copier après la connexion
La troisième méthode consiste à obtenir la valeur SHA1. Dans cette méthode, s représente le chemin du fichier entrant

SHA1 est appelé un algorithme de hachage sécurisé pour les fichiers d'une longueur inférieure. que 2 ^ 64 bits, message, SHA1 produira un résumé de message de 160 bits.

SHA1 a les caractéristiques suivantes : les informations ne peuvent pas être récupérées à partir des résumés de message ; deux messages différents ne produiront pas le même résumé de message (mais il y aura 1x10^48 chances que le même résumé de message apparaisse, ignoré dans usage général).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!