`

Java读取文件MD5的两种方案

阅读更多

原文链接: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值,两个文件夹比较,得出被篡改的目录路径

    计算MD5值可以使用Java的`java.security.MessageDigest`类,先创建MD5实例,然后读取文件内容,每次读取一小部分,更新MD5摘要,最后得到完整的MD5值。 比较两个文件夹的内容时,可以将每个文件或子目录的路径和...

    Java语言实现的md5,rsa算法传送文件

    MD5(Message-Digest Algorithm 5)和RSA(Rivest-Shamir-Adleman)是两种常见的加密算法,它们在Java中有着丰富的支持。这个项目显然是将这两种算法应用于文件传输,通过Applet作为用户界面,Socket进行网络通信。 ...

    MD5算法的JavaBean.rar_md5_md5 文件比对 java_md5算法_指纹_计算 文件 MD5

    MD5(Message-Digest Algorithm 5)是一种广泛应用于信息安全领域的哈希函数,它能将任意长度的数据转换为固定长度的128位(16字节)摘要,通常以32位十六进制数的形式表示。这个算法由Ron Rivest在1991年设计,主要...

    java 读取FTP服务器文件

    以上就是使用Java读取FTP服务器文件的基本流程。在实际开发中,你可能还需要处理更多细节,例如重试机制、异常处理、文件上传、文件删除等。了解这些知识点后,你就能在Web服务器和Linux环境下实现与FTP服务器的交互...

    md5_new.rar_MD5 JAVA_java md5_md5_加密算法

    MD5虽然在安全性方面已不再推荐用于密码存储(因为它存在碰撞攻击的可能性),但在验证文件完整性或快速比较两个小数据块的相似性方面仍然有用。不过,对于更安全的哈希算法,如SHA-256,已经逐渐成为首选。

    java完整性校验解决方案

    总之,Java 中的数据完整性验证通过哈希算法实现,如MD5,它可以有效地检测文件是否在传输过程中被修改。在实际应用中,为了提高安全性,应考虑使用更强大的哈希算法,同时结合SSL/TLS等加密技术,确保数据在传输...

    md5加密jar包

    - `FileMD5Util` 类:扩展了MD5Util,提供了读取文件并计算MD5的方法。 用法.txt: 该文本文件通常会包含如何使用JavaMD5.jar的简要说明。内容可能包括以下几点: 1. **导入jar包**:在Java项目中,将JavaMD5.jar...

    java md5 check tool

    Java MD5 Check Tool 是一个基于Java开发的工具,主要用于计算文件的MD5校验和,以便验证文件的完整性和一致性。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度...

    java实现文件合并与分割

    如果两个文件的MD5值相同,那么它们的内容理论上也应该完全一致。 在Java中,`java.security.MessageDigest`类用于生成MD5散列。首先创建MD5摘要实例,然后读取文件内容,分块进行MD5计算,最后将所有的摘要结果...

    计算文件的MD5值

    在编程中,有许多库或函数可以帮助我们轻松计算文件的MD5或SHA-1值,例如Python的`hashlib`库,Java的`java.security.MessageDigest`类,或者在命令行中使用`md5sum`或`shasum`命令。 总的来说,计算文件的MD5值是...

    Excel的MD5加密的2种实现方式

    在Excel中,我们可以利用两种方法对字段进行MD5加密:VBA(Visual Basic for Applications)函数和宏。以下将详细介绍这两种方法。 首先,我们来看VBA函数的实现。VBA是Excel内置的编程环境,允许用户自定义函数和...

    如何在不额外读流的情况下计算md5值(csdn)————程序.pdf

    总结来说,计算文件MD5值时,如果考虑到性能优化,应该尽量避免额外的磁盘读写操作。使用Java内置的`MessageDigest`类可以实现边下载边计算MD5,从而减少I/O操作,提高程序效率。在实际开发中,可以根据具体需求和...

    MD5加密demo

    提供的"lib"目录下的jar包可能包含了用于MD5计算的库,比如`java.security.MessageDigest`类,这是Java标准库中用于哈希计算的基础类。开发者可以通过这个类的实例来生成MD5摘要。 3. **main类文件**: 这个...

    java使用计算md5校验码方式比较两个文件是否相同

    以下是一个简单的Java类`MD5Check`,它展示了如何计算文件或输入流的MD5值,并比较两个文件的MD5值以确定它们是否相同。 首先,`MD5Check`类初始化了一个`MessageDigest`实例,通过`getInstance("MD5")`方法获取MD5...

    java_md5_class.zip_java_md5_class

    在这个`java_md5_class.zip`压缩包中,包含了一个名为"java的md5加密类.java"的文件,我们可以推测这是一个简单的Java程序,用于实现MD5加密功能。通常,这样的类会包含以下步骤: 1. **初始化MD5实例**:首先,...

    MD5_MessageDigest_java_md5_消息摘要_

    这个项目可能涵盖了从读取文件内容到计算MD5摘要的完整过程,以及如何比较两个MD5摘要以判断文件或数据是否一致。你可以解压文件,运行其中的代码,以加深对MD5在Java中应用的理解。同时,也可以参考该项目的代码...

    MD5 md5 md5加密

    `MD5.java`可能会包含一个`MD5`类,其中包含了计算MD5哈希的方法,而`MD5State.java`则可能封装了MD5算法中的状态变量和更新状态的逻辑,使得算法的实现更加模块化。 总的来说,MD5是一种曾经广泛应用于数据校验的...

    java实现文件加密解密

    MD5 是一种散列函数,以 512 位分组来处理输入的信息,经过了一系列的处理后,输出由四个 32 位分组组成,将这四个 32 位分组级联后将生成一个 128 位散列值。SHA 是一种不可逆的加密算法,将一段明文转换成一段密文...

    基于md5、sha256的文件校验系统

    基于MD5和SHA-256的文件校验系统是一种广泛采用的方法,用于验证文件在传输或存储过程中是否被篡改。以下是对这些技术及其应用的详细阐述: MD5(Message-Digest Algorithm 5)是由Ronald Rivest开发的一种广泛使用...

Global site tag (gtag.js) - Google Analytics