`
dreamoftch
  • 浏览: 492757 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

获取文件的md5

阅读更多
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

    标题"SparkMD5获取文件md5"指的是使用Apache Spark框架中的SparkMD5库来计算文件的MD5值。SparkMD5库是一个专门为Apache Spark设计的扩展,它允许用户在分布式环境中高效地计算大文件的MD5校验和,而无需将整个文件...

    VC/MFC 获取文件MD5值 获取大文件MD5值 命令行版完整项目(源代码)

    在这个“VC/MFC 获取文件MD5值 获取大文件MD5值 命令行版完整项目”中,开发者提供了一个使用C++和MFC(Microsoft Foundation Classes)框架的命令行工具,用于计算大文件的MD5值。 首先,我们要理解MFC是微软为...

    MD5Util获取文件MD5值

    用于获取文件的MD5值,用于获取文件的MD5值,

    VC/MFC 获取文件MD5值 获取大文件MD5值

    在VC/MFC(Microsoft Foundation Classes)环境中,获取文件的MD5值是一项常见的任务,尤其是在进行文件完整性检查或对比文件是否相同的时候。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将...

    VB.net 获取文件的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中实现这一功能。首先,我们需要了解MD5的计算过程,这通常通过调用Java的`java.security.MessageDigest`类来完成。下面是一个简单的步骤概述: 1. ...

    获取文件MD5

    在IT领域,MD5(Message-...总结来说,VB.NET中获取文件MD5值的过程包括导入相关命名空间、定义计算MD5的函数以及调用该函数。这个过程可以有效地帮助开发者验证文件的完整性,确保数据未在传输或存储过程中被篡改。

    delphi 获取文件md5码

    在Delphi编程环境中,获取文件的MD5哈希值是一项常见的任务,这通常用于验证文件的完整性或比较两个...以上是关于在Delphi中获取文件MD5码的主要知识点,通过理解这些概念和实践,你可以有效地实现文件的完整性校验。

    Flex 获取文件MD5值

    Flex 获取文件MD5值插件,调用格式为: var md5:String=by.blooddy.crypto.MD5.hashBytes(file.data);

    获取文件md5值的超实用方便的工具.rar

    标题中的"获取文件md5值的超实用方便的工具.rar"指的是一个包含能够快速计算文件MD5值的实用程序的压缩文件。这个工具设计简洁,操作简便,用户可以轻松地获取任何文件的MD5校验和,从而验证文件是否在传输或存储...

    VB.net 2012 获取文件MD5

    总之,VB.NET 2012获取文件MD5主要是通过使用System.Security.Cryptography命名空间中的MD5类来实现的,这个过程简单且高效。对于大型项目或高性能需求,可以考虑利用特定的MD5计算库来进一步提升效率。

    批量获取文件MD5信息工具

    批量获取文件MD5信息的工具,就像标题中提到的"批量获取文件MD5信息工具",是为了提高工作效率而设计的。这样的工具能够一次性处理多个文件,快速计算出每个文件的MD5值,无需逐一手动操作。这对于大量文件的管理和...

    获取文件MD5工具

    总的来说,"获取文件MD5工具"是日常IT工作中一个非常实用的辅助工具,可以帮助用户确保文件的准确性和一致性,防止因传输错误或恶意篡改导致的问题。而"MD5.exe"作为这样的工具,其简单易用的特性使得任何人都能轻松...

    Java计算文件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值--VB.NET源码

    在IT行业中,MD5(Message-...总结来说,VB.NET中获取文件MD5值的关键在于使用`MD5CryptoServiceProvider`类和`ComputeHash`方法。在开发过程中,理解这些基础概念和API的使用对于提升代码的健壮性和安全性至关重要。

    C# 读取文件MD5值

    以下是一个详细的过程,解释如何在C#中读取文件的MD5值: 1. 引用命名空间:首先,你需要在你的C#源代码文件顶部引入System.IO和System.Security.Cryptography这两个命名空间。它们分别提供了文件操作和哈希计算的...

    java源码 java 获取文件md5值(用于检测文件完整性) 2018127

    然后,通过`FileInputStream`读取文件内容,并使用`update`方法更新MD5摘要。最后,使用`digest`方法获取最终的哈希值,将这个16字节的二进制数组转换为16进制字符串输出。 在实际应用中,你可以将计算出的MD5值...

    获取目录下所有文件MD5值

    获取目录下所有文件MD5值,获取目录下所有文件MD5值.

    vc++获取文件Md5源代码

    本示例提供的源代码是用VC++实现的文件MD5获取功能。MD5计算通常涉及到以下几个关键步骤: 1. **MD5算法原理**:MD5算法由Ronald Rivest在1991年提出,它通过一系列复杂的数学运算(如位移、异或、加法等)将输入...

Global site tag (gtag.js) - Google Analytics