import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
/**
* Created on 2013-5-22
* <p>Description: 获取文件MD5工具类</p>
* @version 1.0
*/
public class MD5Util {
static MessageDigest MD5 = null;
static {
try {
MD5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException ne) {
ne.printStackTrace();
}
}
/**
* 对一个文件获取md5值
* @return md5串
*/
public static String getMD5(File file) {
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[8192];
int length;
while ((length = fileInputStream.read(buffer)) != -1) {
MD5.update(buffer, 0, length);
}
return new String(Hex.encodeHex(MD5.digest()));
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
try {
if (fileInputStream != null)
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 求一个字符串的md5值
* @param target 字符串
* @return md5 value
*/
public static String MD5(String target) {
return DigestUtils.md5Hex(target);
}
public static void main(String[] args){
long beginTime =System.currentTimeMillis();
File fileZIP = new File("E:\\资料\\ws.rar");
String md5=getMD5(fileZIP);
long endTime =System.currentTimeMillis();
System.out.println("MD5:"+md5+"\n time:"+((endTime-beginTime)/1000)+"s");
}
}
这个方法可以解决获取大文件MD5,不会出现内存溢出
分享到:
相关推荐
标题"SparkMD5获取文件md5"指的是使用Apache Spark框架中的SparkMD5库来计算文件的MD5值。SparkMD5库是一个专门为Apache Spark设计的扩展,它允许用户在分布式环境中高效地计算大文件的MD5校验和,而无需将整个文件...
在这个“VC/MFC 获取文件MD5值 获取大文件MD5值 命令行版完整项目”中,开发者提供了一个使用C++和MFC(Microsoft Foundation Classes)框架的命令行工具,用于计算大文件的MD5值。 首先,我们要理解MFC是微软为...
在VC/MFC(Microsoft Foundation Classes)环境中,获取文件的MD5值是一项常见的任务,尤其是在进行文件完整性检查或对比文件是否相同的时候。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将...
用于获取文件的MD5值,用于获取文件的MD5值,
'获取文件MD5值的函数 Public Shared Function _MD5(ByVal strSource As String) As String Dim fstream As New FileStream(strSource, FileMode.Open, FileAccess.Read) Dim dataToHash(fstream.Length - 1) As...
这篇名为“java 获取文件MD5值”的博客文章可能讲述了如何在Java中实现这一功能。首先,我们需要了解MD5的计算过程,这通常通过调用Java的`java.security.MessageDigest`类来完成。下面是一个简单的步骤概述: 1. ...
在IT领域,MD5(Message-...总结来说,VB.NET中获取文件MD5值的过程包括导入相关命名空间、定义计算MD5的函数以及调用该函数。这个过程可以有效地帮助开发者验证文件的完整性,确保数据未在传输或存储过程中被篡改。
在Delphi编程环境中,获取文件的MD5哈希值是一项常见的任务,这通常用于验证文件的完整性或比较两个...以上是关于在Delphi中获取文件MD5码的主要知识点,通过理解这些概念和实践,你可以有效地实现文件的完整性校验。
Flex 获取文件MD5值插件,调用格式为: var md5:String=by.blooddy.crypto.MD5.hashBytes(file.data);
标题中的"获取文件md5值的超实用方便的工具.rar"指的是一个包含能够快速计算文件MD5值的实用程序的压缩文件。这个工具设计简洁,操作简便,用户可以轻松地获取任何文件的MD5校验和,从而验证文件是否在传输或存储...
总之,VB.NET 2012获取文件MD5主要是通过使用System.Security.Cryptography命名空间中的MD5类来实现的,这个过程简单且高效。对于大型项目或高性能需求,可以考虑利用特定的MD5计算库来进一步提升效率。
Java计算文件MD5值(支持大文件) package com.hthl.xxtd; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import org....
批量获取文件MD5信息的工具,就像标题中提到的"批量获取文件MD5信息工具",是为了提高工作效率而设计的。这样的工具能够一次性处理多个文件,快速计算出每个文件的MD5值,无需逐一手动操作。这对于大量文件的管理和...
总的来说,"获取文件MD5工具"是日常IT工作中一个非常实用的辅助工具,可以帮助用户确保文件的准确性和一致性,防止因传输错误或恶意篡改导致的问题。而"MD5.exe"作为这样的工具,其简单易用的特性使得任何人都能轻松...
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); StringBuilder sb = new StringBuilder(); ...
在IT行业中,MD5(Message-...总结来说,VB.NET中获取文件MD5值的关键在于使用`MD5CryptoServiceProvider`类和`ComputeHash`方法。在开发过程中,理解这些基础概念和API的使用对于提升代码的健壮性和安全性至关重要。
获取目录下所有文件MD5值,获取目录下所有文件MD5值.
以下是一个详细的过程,解释如何在C#中读取文件的MD5值: 1. 引用命名空间:首先,你需要在你的C#源代码文件顶部引入System.IO和System.Security.Cryptography这两个命名空间。它们分别提供了文件操作和哈希计算的...
然后,通过`FileInputStream`读取文件内容,并使用`update`方法更新MD5摘要。最后,使用`digest`方法获取最终的哈希值,将这个16字节的二进制数组转换为16进制字符串输出。 在实际应用中,你可以将计算出的MD5值...