Maison > Article > développement back-end > Explication détaillée de la façon dont C# obtient les fichiers MD5 et SHA1
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 entrantstatic 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); } }La deuxième méthode obtient la valeur MD5 Dans cette méthode, s représente le chemin du fichier entrantMD5. 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); } }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!