`
gogole_09
  • 浏览: 205575 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MD5验证文件

阅读更多

 参考多篇网上的资料。  记录一下 java用MD5验证文件的方法,

 

import java.applet.*;   
import java.io.*;   
import java.security.*;   
  
/**
 * MD5比较文件
 * @author Administrator
 *
 */
public class MD5Test {   
    public static char[] hexChar = {'0', '1', '2', '3',   
                                   '4', '5', '6', '7',   
                                   '8', '9', 'a', 'b',   
                                   'c', 'd', 'e', 'f'};   
    public static void main(String[] args) throws  
            Exception {   
    	String fileName = "D:\\FinanceSetup.zip";
    	
        String fileName2 = "D:\\httpd-2.2.14.tar.gz";
        
        String hashType = "MD5";   
        System.out.println(hashType + " == " +   
        		getHash(fileName2, hashType));   
        System.out.println(hashType + " == " +   
                           getHash(fileName, hashType));   
    }   
  
    public static String getHash(String fileName, String hashType) throws  
            Exception {   
        InputStream fis;   
        fis = new FileInputStream(fileName);   
        byte[] buffer = new byte[1024];   
        MessageDigest md5 = MessageDigest.getInstance(hashType);   
        int numRead = 0;   
        while ((numRead = fis.read(buffer)) > 0) {   
            md5.update(buffer, 0, numRead);   
        }   
        fis.close();   
        return toHexString(md5.digest());   
    }   
  
    /**
     * 0xf0 :为16进制数 
     *    转成10进制为 240
     *    转成2进制为  11110000 
     * 
     *  解释:(b[i]&0xf0)>>>4  
	 *			-->将b[i]的低4位清零后, (将b[i]转成2进制  再 & 0xf0 既  & 11110000 ; 例如:01010101 & 11110000 结果是 01010000) 
	 *			再无符号的右移4位 既取出高4位 
	 *			作为数组hexChar的下标 拿到对应的16进制符
     * @param b byte数组
     * @return
     */
    public static String toHexString(byte[] b) {   
        StringBuilder sb = new StringBuilder(b.length <<1);   
        for (int i = 0; i < b.length; i++) {
            sb.append(hexChar[(b[i] & 0xf0) >>> 4]);   
            sb.append(hexChar[b[i] & 0x0f]);   
        }   
        return sb.toString();   
    }   
}  
分享到:
评论

相关推荐

    Flex多文件上传+md5验证文件是否上传

    标题“Flex多文件上传+md5验证文件是否上传”揭示了该技术的核心要点:使用Flex来处理多个文件的上传,并通过MD5哈希校验确保上传的文件与原始文件一致,防止数据篡改。 1. **多文件上传**:在Flex中,可以利用...

    hash md5验证 文件校验

    "Hash MD5验证 文件校验"这个标题所提及的就是一种常见的文件校验方法,它使用MD5(Message-Digest Algorithm 5)哈希算法来生成文件的数字指纹。MD5是由美国计算机科学家Ronald Rivest在1991年设计的一种广泛使用的...

    VC6.0 C++ MD5验证源码文件和字符串验证功能

    文件MD5验证:在软件分发或文件传输时,提供文件的MD5值可以让接收方计算接收到的文件的MD5值并与之对比,以确认文件是否完整无误。文件MD5的计算通常是对文件的每个字节逐个读取,然后通过MD5算法生成唯一的哈希值...

    基于C++实现 MD5 算法的文件完整性校验程序【100010122】

    ./md5 -f nankai.txt nankai.md5 验证文件完整性方法二 实验涉及的文件包括: (1) main.cpp:主函数文件。 (2) helpFunc.h:功能函数定义。 (3) helpFunc.cpp:功能函数实现。 (4) MD5.h:MD5 类定义。 (5...

    基于MD5算法的文件完整性检查工具

    文件完整性检查工具,如"MD5 Checksum Verifier v3.9-CRD",是利用MD5算法来验证文件是否保持原样的实用程序。它的工作原理是先计算原始文件的MD5哈希值,然后在文件传输或操作后再次计算该值,对比两次哈希值是否...

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

    在Java编程中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定长度的摘要表示,通常用于验证文件的完整性和一致性。本示例代码是关于如何使用Java来计算文件的MD5哈希...

    验证文件完整的MD5验证器

    标题中的"验证文件完整的MD5验证器"是指一种工具,它可以计算文件的MD5散列值并与预知的MD5值进行对比,以此来确认文件是否完整无误。这在下载大文件、软件安装包或者重要文档时特别有用,因为一旦文件内容有任何...

    MD5验证软件,用于验证下载镜像MD5值

    但在验证文件完整性方面,MD5仍然是一个有效且常见的方法,尤其是在日常的文件下载和传输中。 总的来说,MD5验证软件是保障数据安全、确保文件未被篡改的重要工具。通过使用像"md5效验工具.exe"这样的软件,用户...

    android对文件的MD5验证

    在这个场景中,我们有一个名为“mymd5”的压缩包文件,它很可能包含了一个Android应用或库,用于计算和验证文件的MD5值。下面将详细介绍Android环境下如何实现文件的MD5验证。 首先,我们需要理解MD5的基本原理。MD...

    Md5验证工具

    MD5验证工具是一种用于确认文件完整性和未被篡改的重要工具。在IT行业中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意大小的输入数据转化为固定长度的128位(通常表示为32位的十六...

    贝壳MD5验证 MD5验证工具

    3. **批量处理**:高级的MD5验证工具可能支持批量处理多个文件,一次性计算并验证大量文件的MD5值,大大提高工作效率。 4. **界面友好**:贝壳MD5验证工具被描述为“很好用”,这可能意味着它具有直观的用户界面,...

    文件MD5验证

    文件MD5验证是确保文件完整性和未被篡改的重要手段。在安全编程中,开发者会为原始文件计算MD5值并存储,当用户下载或传输文件后,可以通过再次计算文件的MD5值并与原始值进行对比,来确认文件在传输过程中是否保持...

    MD5验证程序(很好用的软件)

    MD5验证程序是一种用于确认文件完整性和未被篡改的工具。在IT行业中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度的摘要信息,通常是一个128位的二进制数,...

    vc实现MD5值文件校验

    因此,MD5常用于文件的完整性验证,一旦文件内容发生改变,其MD5值也会随之改变。 在VC++中实现MD5文件校验,可以使用如OpenSSL库这样的第三方库,它提供了MD5计算的API。首先,我们需要将OpenSSL库集成到VC++项目...

    SparkMD5获取文件md5

    在IT领域,尤其是在数据处理和安全验证中,计算文件的MD5(Message-Digest Algorithm 5)哈希值是一项常用的技术。MD5是一种广泛使用的加密散列函数,它能够将任意大小的输入(也称为“预映射”或“消息”)转化为一...

    win7 802.1X MD5验证补丁

    补丁的安装过程通常包括下载文件(即"windows7 802.1X MD5验证补丁"),然后按照提供的指南或向导进行安装。安装后,可能需要重启计算机以使改动生效,并通过网络设置来配置802.1X认证。 总的来说,"win7 802.1X MD...

    MD5验证工具文件证工具

    标题中的"MD5验证工具文件证工具"指的是专门用来检验ISO文件(如操作系统镜像)的MD5校验码的软件工具,确保用户下载的ISO文件与原始发布者提供的MD5值相匹配,从而验证其真实性。 MD5(Message-Digest Algorithm 5...

    MD5.rar 下载网络的文件带MD5验证的,可以用这个计算

    标题“MD5.rar 下载网络的文件带MD5验证的,可以用这个计算”表明这是一个与MD5相关的压缩包,可能包含一个名为MD5.exe的可执行程序,用于计算文件的MD5值。MD5值在下载文件时特别有用,因为它允许用户比较原始...

    MD5验证工具 全系列

    这些工具都是为了方便用户快速计算文件的MD5值并与官方提供的校验和进行对比,以验证文件的完整性。 HashCalc是一款功能强大的哈希计算工具,支持多种哈希算法,包括MD5。用户可以通过它快速计算文件的MD5值,只需...

    cocos2dx下可用的,验证文件MD5代码及使用方法

    为了达到这一目标,开发者可以采用校验和或哈希函数,如MD5(Message-Digest Algorithm 5),来验证文件是否被篡改。MD5是一种广泛使用的加密散列函数,产生一个128位(16字节)的散列值,通常表示为32个十六进制...

Global site tag (gtag.js) - Google Analytics