实现Java文件MD5值对比

步骤表格

步骤 描述
1 读取文件1的MD5值
2 读取文件2的MD5值
3 比较两个MD5值是否相同

代码示例

import java.io.FileInputStream;
import java.security.MessageDigest;

public class MD5Util {
    public static String getMD5(String filePath) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            FileInputStream fis = new FileInputStream(filePath);
            byte[] dataBytes = new byte[1024];

            int nread = 0;
            while ((nread = fis.read(dataBytes)) != -1) {
                md.update(dataBytes, 0, nread);
            }
            fis.close();

            byte[] mdBytes = md.digest();

            StringBuilder sb = new StringBuilder();
            for (byte mdByte : mdBytes) {
                sb.append(Integer.toString((mdByte & 0xff) + 0x100, 16).substring(1));
            }

            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
        String file1 = "path/to/file1";
        String file2 = "path/to/file2";

        String md5File1 = getMD5(file1);
        System.out.println("MD5 of file1: " + md5File1);

        String md5File2 = getMD5(file2);
        System.out.println("MD5 of file2: " + md5File2);

        if (md5File1.equals(md5File2)) {
            System.out.println("MD5 values are equal.");
        } else {
            System.out.println("MD5 values are not equal.");
        }
    }
}

流程解析

  1. 读取文件1的MD5值

    • 使用getMD5方法读取文件1的MD5值,传入文件1的路径作为参数。
  2. 读取文件2的MD5值

    • 使用getMD5方法读取文件2的MD5值,传入文件2的路径作为参数。
  3. 比较两个MD5值是否相同

    • 使用字符串的equals方法比较两个MD5值是否相同。

图表展示

pie
    title 文件MD5值对比结果比例
    "MD5值相同" : 70
    "MD5值不同" : 30

通过以上步骤和代码示例,你可以实现Java文件MD5值对比的功能。希望对你有所帮助!