1. Pourquoi éviter de faux fichiers?
La réponse est claire, pour assurer le droit d'auteur, le système de sécurité, V.V. La société précédente a développé un système, le noyau est les résultats de la recherche des érudits de l'Académie. En tant que logiciel commercial, il est important de veiller à ce que l'entreprise et l'auteur du droit d'auteur soient très importantes. La sécurité du système n'est pas plus utile, le système est impropre, ce système n'est pas un système qualifié.2. Examen général
Nous savons tous qu'un système ou un logiciel inclut plusieurs fichiers. Le rôle du test de fichier consiste à assurer l'exactitude et l'unicité de la version du système. Les détails seront expliqués en détail ci-dessous.
3. Principes de calibrage des fichiers
Combien de façons de penser et d'exécuter peut être une variété de façons différentes, je parle de vos propres idées et déploiements I, s'il vous plaît lisez-vous.
Principe: Il y a deux noyaux:
1. Valeur MD5 de chaque fichierDifférent est différent
2. MD5 sera modifié chaque modification de fichier
4. Déployer
1. Obtenez la racine du système MINI ]
3. Calculez la valeur MD5 de chaque fichier et de l'ajouter. Cause: chaque fichier MD5 a différentes valeurs et valeurs MD5 après plus d'informations est également unique. La valeur MD5 occupe 32 bits, 4 octets. Tout le monde sait, 1 Go = 1024 Mo; 1mb = 1024kb; 1kb = 1024b; 1b = 8 bits; C'est-à-dire que plus de 10 000 fichiers, 1000 * 4b / 1024 = 39kb. Cette valeur est beaucoup plus petite que le maximum de la chaîne. Série maximale de 2 Go, je n'ai pas vérifié directement les données de l'Internet.
4. Une fois la valeur MD5 de tous les fichiers ajoutés, obtenu la valeur TOTH5 MD5 et est unique.
5. Lorsque l'utilisateur démarre, le fichier sera vérifié à l'avance et si la vérification et l'incohérence du serveur sont incohérentes, elle détermine que le client est illégal et interdit à tous deux le comportement dece!Remarque: certains fichiers sont une valeur de changement, telle que des journaux de journal. Par conséquent, ces choses ont changé le document, et non pour participer aux calculs de test de fichiers
5. Déploiement de code
Vérifiez le fichier
Le fichier de valeur MD5 est calculé
Vérifier
aucun problème avec les résultats du test.
public class CheckSystemFolderSum {// 所有文件md5总和private static String fileSum = "";/** * 遍历文件夹下的所有文件(递归) 并对每个文件计算md5值 得到所有文件的md5值之和 * @param file 软件系统的根文件夹 , suffix 目录文件后缀(以该后缀结尾的目录不会遍历和计算md5值) * @return 系统所有文件md5之和 */public String traverseFolder(File file , String suffix){if(file == null){throw new NullPointerException("遍历路径为空路径或非法路径");} if (file.exists()) { //判断文件或目录是否存在 File[] files = file.listFiles(); if (files.length == 0) { // 文件夹为空 return null; } else { for (File f : files) { // 遍历文件夹 if (f.isDirectory()) { // 判断是否是目录 if(!(f.getName().endsWith(".no"))){ // 如果不是以.no结尾的目录 则计算该目录下的文件的md5值 // 递归遍历 traverseFolder(f,suffix); } } else { // 得到文件的md5值 String string = checkMd5(f); // 将每个文件的md5值相加 fileSum+=string; } } } } else { return null; // 目录不存在 } return fileSum; // 返回所有文件md5值字符串之和}
Téléchargez le code source: Veuillez noter que le nom du package du fichier source associé à la confidentialité est supprimé et l'adresse du code doit être modifiée. Veuillez vérifier à nouveau après l'erreur de finition!
/** * 检验文件生成唯一的md5值 作用:检验文件是否已被修改 * @param file 需要检验的文件 * @return 该文件的md5值 */private static String checkMd5(File file) { // 若输入的参数不是一个文件 则抛出异常if(!file.isFile()){ throw new NumberFormatException("参数错误!请输入校准文件。");}// 定义相关变量 FileInputStream fis = null; byte[] rb = null; DigestInputStream digestInputStream = null; try { fis = new FileInputStream(file); MessageDigest md5 = MessageDigest.getInstance("md5"); digestInputStream = new DigestInputStream(fis,md5); byte[] buffer = new byte[4096]; while (digestInputStream.read(buffer) > 0); md5 = digestInputStream.getMessageDigest(); rb = md5.digest(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); }finally{ try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } StringBuilder sb = new StringBuilder(); for (int i = 0; i < rb.length; i++) { String a = Integer.toHexString(0XFF & rb[i]); if (a.length() < 2) { a = '0' + a; } sb.append(a); } return sb.toString(); //得到md5值 }
Télécharger: https: //doad.csdn.net/doad/javabuilt/10291183 Mettre à jour l'outil d'écriture d'onde pour vérifier le fichier d'alimentation MATH
] Outils utilisés:
Remarque: Outils Cette valeur par défaut ne vérifie pas .Properies Vérifier le fichier! N'utilisez pas d'utilité commerciale!
Télécharger l'outil: https: //doad.csdn.NET / Drad / Javabuilt / 11435080