java 中,如何获取文件的MD5值呢?如何比较两个文件是否完全相同呢?
/** * Get MD5 of one file:hex string,test OK! * * @param file * @return */ public static String getFileMD5(File file) { if (!file.exists() || !file.isFile()) { return null; } MessageDigest digest = null; FileInputStream in = null; byte buffer[] = new byte[1024]; int len; try { digest = MessageDigest.getInstance("MD5"); in = new FileInputStream(file); while ((len = in.read(buffer, 0, 1024)) != NEGATIVE_ONE) { digest.update(buffer, 0, len); } in.close(); } catch (Exception e) { e.printStackTrace(); return null; } BigInteger bigInt = new BigInteger(1, digest.digest()); return bigInt.toString(16); } /*** * Get MD5 of one file!test ok! * * @param filepath * @return */ public static String getFileMD5(String filepath) { File file = new File(filepath); return getFileMD5(file); } /** * MD5 encrypt,test ok * * @param data * @return byte[] * @throws Exception */ public static byte[] encryptMD5(byte[] data) throws Exception { MessageDigest md5 = MessageDigest.getInstance(SystemUtil.KEY_MD5); md5.update(data); return md5.digest(); } public static byte[] encryptMD5(String data) throws Exception { return encryptMD5(data.getBytes(SystemUtil.CHARSET_ISO88591)); } /*** * compare two file by Md5 * * @param file1 * @param file2 * @return */ public static boolean isSameMd5(File file1,File file2){ String md5_1=SystemUtil.getFileMD5(file1); String md5_2=SystemUtil.getFileMD5(file2); return md5_1.equals(md5_2); } /*** * compare two file by Md5 * * @param filepath1 * @param filepath2 * @return */ public static boolean isSameMd5(String filepath1,String filepath2){ File file1=new File(filepath1); File file2=new File(filepath2); return isSameMd5(file1, file2); }
测试(使用junit):
@Test public void test_getFileMD5() throws Exception{ String filepath="D:\\download\\3_尚学堂_UML概览.avi"; // File file=new File(filepath); String md5_1=SystemUtil.getFileMD5(filepath); System.out.println(md5_1); byte[]bytes=FileUtils.readBytes4file(filepath); byte[]md5=SystemUtil.encryptMD5(bytes); String md5_2=SystemUtil.toHexString(md5); System.out.println(md5_2); Assert.assertEquals(md5_1, md5_2); }
相关推荐
以下是一个简单的Java源码示例,展示了如何获取文件的MD5值: ```java import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import java.security....
Java计算文件MD5值(支持大文件) package com.hthl.xxtd; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import org....
JavaSwing文件Md5值计算器是一款基于Java Swing开发的实用工具,主要用于计算文件的MD5哈希值。MD5(Message-Digest Algorithm 5)是一种广泛使用的加密散列函数,产生一个128位(16字节)的散列值,通常用32个十六...
### JAVA_对文件进行MD5加密 在计算机科学与信息安全领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据映射为一个固定长度(通常是128位)的十六进制数值。这种算法在数据...
java源码,用来获得文件的MD5,如果电脑上没有MD5软件,可以用这个,一运行就知道MD5值是多少。 略作修改即可计算字符串的MD5值。
本文将详细介绍如何解决Java与C#中MD5哈希值不一致的问题,并提供相应的代码示例。 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是RSA数据安全公司设计并发布的一种散列函数,它能够接收任意长度的...
计算MD5值可以使用Java的`java.security.MessageDigest`类,先创建MD5实例,然后读取文件内容,每次读取一小部分,更新MD5摘要,最后得到完整的MD5值。 比较两个文件夹的内容时,可以将每个文件或子目录的路径和...
在提供的"MessageSecurity"文件中,可能包含了一个具有图形用户界面(GUI)的Java应用程序,该程序允许用户输入文本并显示其MD5摘要值。这可能是为了教学目的,让用户直观地理解MD5加密的过程。这样的界面通常会包含...
这个“一个比较好用的md5计算工具”很可能是一个名为“MD5Summer”的应用程序,提供计算文件MD5值的功能。MD5Summer.exe很可能是该工具的可执行文件,用户下载后可以直接运行。下面我们将详细探讨MD5计算工具和MD5...
在计算文件的 MD5 值时,需要使用 MessageDigest 类的 getInstance 静态方法来获取 MessageDigest 对象,并将参数设置为 "MD5"。然后,使用 FileInputStream 读取文件的内容,并将其传递给 MessageDigest 对象的 ...
Java作为一种多平台通用的编程语言,提供了计算文件MD5码的功能。本项目就是一个基于Java编写的文件MD5码计算工具,使用NetBeans作为集成开发环境(IDE)进行开发。 首先,MD5码的计算原理是通过特定算法将输入的...
MD5,全称为Message-Digest Algorithm 5,是一种广泛用于数据完整性校验和加密的哈希函数。在Java编程中,MD5常被用来...同时,`CalcMD5.exe`这样的工具可以帮助开发者和用户快速获取文件的MD5值,以进行一致性检查。
MD5FileUtils可能提供了计算文件MD5校验和的函数,以便用户确认文件在传输过程中是否被篡改或损坏。 接下来,FileUploadUtil显然与文件上传有关,这可能是一个工具类,封装了文件上传到服务器的相关逻辑。这可能...
在标题"Md5.java.rar_MD5 JAVA_MD5.ja_java md5_md5_md5 java realization"中,我们可以推测这个压缩包包含了一个名为"Md5.java"的源代码文件,这是一个实现了MD5算法的Java类。MD5 JAVA可能指的是这个Java实现是...
2. **文件校验**:可以计算文件的MD5值,作为文件的指纹,用于验证文件是否完整或被篡改。 3. **数据一致性检查**:在网络传输数据时,接收方可以通过计算接收到的数据的MD5值与发送方提供的值进行比较,确认数据在...
6. **MD5的应用**:在Java中,MD5常用于验证文件完整性,比如下载文件后检查MD5值是否与原始文件一致。此外,过去也曾用于密码存储,但现在通常会使用更安全的哈希算法如SHA-256,并配合盐值和迭代次数增加安全性。 ...
6. **验证或比较MD5值**:你可以用同样的方式计算目标数据的MD5值,然后与已知的MD5值进行比较,以验证数据的完整性。 用法.txt文件很可能是提供关于如何在Java程序中使用JavaMD5.jar的详细指南,包括导入库、创建...
服务器会提供文件的MD5校验和,客户端下载文件后计算其MD5值并与服务器提供的值比较,确保文件未在传输过程中受损。 总之,MD5在Java中主要用于数据的加密和完整性校验,但在当前安全需求下,应当考虑更安全的替代...