原文链接:http://blog.csdn.net/wangqiuyun/article/details/22941433
package cdm;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
import org.apache.commons.codec.digest.*;
import org.apache.commons.io.IOUtils;
public class testMD5 {
public static String getMd5ByFile(File file) throws FileNotFoundException {
String value = null;
FileInputStream in = new FileInputStream(file);
try {
MappedByteBuffer byteBuffer = in.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(byteBuffer);
BigInteger bi = new BigInteger(1, md5.digest());
value = bi.toString(16);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return value;
}
public static void main(String[] args) throws IOException {
String path="E:\\commons-codec-1.9-bin.zip";
String v = getMd5ByFile(new File(path));
System.out.println("MD5:"+v.toUpperCase());
FileInputStream fis= new FileInputStream(path);
String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis));
IOUtils.closeQuietly(fis);
System.out.println("MD5:"+md5);
//System.out.println("MD5:"+DigestUtils.md5Hex("WANGQIUYUN"));
}
}
附commons-codec-1.9.jar下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi
如果要处理过G的文件,请参照:http://www.cnblogs.com/yaowukonga/p/3523668.html
相关推荐
计算MD5值可以使用Java的`java.security.MessageDigest`类,先创建MD5实例,然后读取文件内容,每次读取一小部分,更新MD5摘要,最后得到完整的MD5值。 比较两个文件夹的内容时,可以将每个文件或子目录的路径和...
以上就是使用Java读取FTP服务器文件的基本流程。在实际开发中,你可能还需要处理更多细节,例如重试机制、异常处理、文件上传、文件删除等。了解这些知识点后,你就能在Web服务器和Linux环境下实现与FTP服务器的交互...
MD5(Message-Digest Algorithm 5)和RSA(Rivest-Shamir-Adleman)是两种常见的加密算法,它们在Java中有着丰富的支持。这个项目显然是将这两种算法应用于文件传输,通过Applet作为用户界面,Socket进行网络通信。 ...
MD5(Message-Digest Algorithm 5)是一种广泛应用于信息安全领域的哈希函数,它能将任意长度的数据转换为固定长度的128位(16字节)摘要,通常以32位十六进制数的形式表示。这个算法由Ron Rivest在1991年设计,主要...
MD5虽然在安全性方面已不再推荐用于密码存储(因为它存在碰撞攻击的可能性),但在验证文件完整性或快速比较两个小数据块的相似性方面仍然有用。不过,对于更安全的哈希算法,如SHA-256,已经逐渐成为首选。
总之,Java 中的数据完整性验证通过哈希算法实现,如MD5,它可以有效地检测文件是否在传输过程中被修改。在实际应用中,为了提高安全性,应考虑使用更强大的哈希算法,同时结合SSL/TLS等加密技术,确保数据在传输...
- `FileMD5Util` 类:扩展了MD5Util,提供了读取文件并计算MD5的方法。 用法.txt: 该文本文件通常会包含如何使用JavaMD5.jar的简要说明。内容可能包括以下几点: 1. **导入jar包**:在Java项目中,将JavaMD5.jar...
Java MD5 Check Tool 是一个基于Java开发的工具,主要用于计算文件的MD5校验和,以便验证文件的完整性和一致性。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度...
如果两个文件的MD5值相同,那么它们的内容理论上也应该完全一致。 在Java中,`java.security.MessageDigest`类用于生成MD5散列。首先创建MD5摘要实例,然后读取文件内容,分块进行MD5计算,最后将所有的摘要结果...
在编程中,有许多库或函数可以帮助我们轻松计算文件的MD5或SHA-1值,例如Python的`hashlib`库,Java的`java.security.MessageDigest`类,或者在命令行中使用`md5sum`或`shasum`命令。 总的来说,计算文件的MD5值是...
总结来说,计算文件MD5值时,如果考虑到性能优化,应该尽量避免额外的磁盘读写操作。使用Java内置的`MessageDigest`类可以实现边下载边计算MD5,从而减少I/O操作,提高程序效率。在实际开发中,可以根据具体需求和...
在Excel中,我们可以利用两种方法对字段进行MD5加密:VBA(Visual Basic for Applications)函数和宏。以下将详细介绍这两种方法。 首先,我们来看VBA函数的实现。VBA是Excel内置的编程环境,允许用户自定义函数和...
提供的"lib"目录下的jar包可能包含了用于MD5计算的库,比如`java.security.MessageDigest`类,这是Java标准库中用于哈希计算的基础类。开发者可以通过这个类的实例来生成MD5摘要。 3. **main类文件**: 这个...
以下是一个简单的Java类`MD5Check`,它展示了如何计算文件或输入流的MD5值,并比较两个文件的MD5值以确定它们是否相同。 首先,`MD5Check`类初始化了一个`MessageDigest`实例,通过`getInstance("MD5")`方法获取MD5...
在这个`java_md5_class.zip`压缩包中,包含了一个名为"java的md5加密类.java"的文件,我们可以推测这是一个简单的Java程序,用于实现MD5加密功能。通常,这样的类会包含以下步骤: 1. **初始化MD5实例**:首先,...
这个项目可能涵盖了从读取文件内容到计算MD5摘要的完整过程,以及如何比较两个MD5摘要以判断文件或数据是否一致。你可以解压文件,运行其中的代码,以加深对MD5在Java中应用的理解。同时,也可以参考该项目的代码...
`MD5.java`可能会包含一个`MD5`类,其中包含了计算MD5哈希的方法,而`MD5State.java`则可能封装了MD5算法中的状态变量和更新状态的逻辑,使得算法的实现更加模块化。 总的来说,MD5是一种曾经广泛应用于数据校验的...
MD5 是一种散列函数,以 512 位分组来处理输入的信息,经过了一系列的处理后,输出由四个 32 位分组组成,将这四个 32 位分组级联后将生成一个 128 位散列值。SHA 是一种不可逆的加密算法,将一段明文转换成一段密文...
基于MD5和SHA-256的文件校验系统是一种广泛采用的方法,用于验证文件在传输或存储过程中是否被篡改。以下是对这些技术及其应用的详细阐述: MD5(Message-Digest Algorithm 5)是由Ronald Rivest开发的一种广泛使用...