`
wangju19870301
  • 浏览: 36463 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

验证文件完整性

阅读更多

平时在网上下载文件时,有时会看到一个不规律的字符串(MD5:609ff6b4db5c8dcb85728459705f4df4)。可以通过如下方法验证下载的文件是否未被修改过。

 

import java.io.File;

import java.io.FileInputStream;

import java.security.DigestInputStream;

import java.security.MessageDigest;

 

import org.apache.commons.codec.binary.Hex;

import org.apache.commons.codec.digest.DigestUtils;

import org.junit.Assert;

import org.junit.Test;

 

/**

 * 下载的文件为 mysql-essential-5.1.46-win32.msi

 * MD5值为 609ff6b4db5c8dcb85728459705f4df4

 */

public class MD5Test {

    /**

     * 使用Java API实现

     * @throws Exception

     */

    @Test

    public void testByMessageDigest() throws Exception {

       // 构建文件输入流

       FileInputStream fis = new FileInputStream(new File("D:\\mysql-essential-5.1.46-win32.msi"));

       // 初始化MessageDigest,并指定MD5算法

       DigestInputStream dis = new DigestInputStream(fis, MessageDigest.getInstance("MD5"));

       // 缓冲字节数组

       byte[] buffer = new byte[1024];

       // 当读到值大于-1就继续读

       int read = dis.read(buffer, 0, 1024);

       while (read > -1) {

           read = dis.read(buffer, 0, 1024);

       }

       // 关闭流

       dis.close();

       // 获得MessageDigest

       MessageDigest md = dis.getMessageDigest();

       // 摘要处理

       byte[] b = md.digest();

       // 十六进制转换

       String md5hex = Hex.encodeHexString(b);

       // 验证

       Assert.assertEquals(md5hex, "609ff6b4db5c8dcb85728459705f4df4");

    }

   

    /**

     * 使用Commons Codec实现

     * @throws Exception

     */

    @Test

    public void testByDigestUtils() throws Exception {

       // 构建文件输入流

       FileInputStream fis = new FileInputStream(new File("D:\\mysql-essential-5.1.46-win32.msi"));

       // 使用DigestUtilsMD5Hex处理

       String md5hex = DigestUtils.md5Hex(fis);

       // 关闭流

       fis.close();

       // 验证

       Assert.assertEquals(md5hex, "609ff6b4db5c8dcb85728459705f4df4");

    }

}

 

 

分享到:
评论

相关推荐

    java完整性校验解决方案

    他其实就是对原版文件(发送方发送的文件)完整性的验证标识符。当我们把文件下到本地后,可以自己对其进行验证,若验证的结果与发送方提供的指纹一致的话,则表明,在传输过程中。数据文件没有被算改或其他损耗。

    HASH工具,验证文件完整性

    可验证MD5,SHA1,CRC32,没有无关内容

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

    基于MD5算法的文件完整性检查工具,这个工具比较好用,现在推荐你们!

    使用MD5算法验证文件完整性或密码正确性

    NULL 博文链接:https://hzy3774.iteye.com/blog/2153441

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

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

    hashcheck:可以验证文件完整性的dotnet核心控制台应用程序

    一个可以验证文件完整性的dotnet核心控制台应用程序 该程序将创建一个名为您想要的文件的检查文件,并将其存储在您想要的位置。 该路径是相对的,因此将数据移动到另一个驱动器或共享不会影响该过程。 用法 仅使用该...

    hashtools 文件完整性验证工具

    Verify a file's integrity by calculating its CRC32, MD5, SHA1, SHA256, SHA384 or SHA512 hash 验证文件完整性

    游戏文件完整性校验工具

    游戏文件完整性校验工具游戏文件完整性校验工具游戏文件完整性校验工具

    文件完整性校验工具(CHK)v1.60汉化绿色版

    这些问题,可以用文件完整性校验工具 CHK来解决,它可以检验文件的哈希值,允许您查看的文件大小、 类型和sha信息,以便检查文件的完整性,支持批量校验 功能特点: 1、验证下载文件的完整性 2、查找和删除电脑中的...

    MD5校验码验证文件的完整性

    从网络下载一个文件,往往在使用之前需要先验证其文件的完整有效性,这个md5生成验证码的工具,就非常实用了。一个放入服务器端的报文中,另一个在代码中使用MD5检验,两边一对比,如果生成字串一致,那么即可说明...

    CHK(文件完整性校验工具) v1.85.zip

    CHK(文件完整性校验工具)可以验证文件的完整性让你可以查看到你的文件的大小、类型和sha等等信息,CHK可以帮你核对你的文件信息比较复制/传输的文件,还可以查找和从计算机中删除重复的文件软件特色。 CHK(文件完整...

    md5 代码,验证文档完整性

    MD5摘要计算源代码。用于验证文档的完整性。 建议CSDN使用

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

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

    安装程序不能验证Update.inf文件的完整性

    这提供三种管理服务: 编录数据库服务,它确定 Windows 文件的签字; 受保护的根服务,它从此计算机添加和删除受信根证书机构的证书;和密钥(Key)服务,它帮助注册此计算机获取证书。如果此服务被终止,这些管理服务将...

    哈希值验证工具 Hasher 4.1 中文多语.zip

    Hasher Pro 实用程序使用范围广,支持算法验证文件完整性:CRC32,MD2,MD4,MD5,SHA1,SHA256,SHA512,RipeMD128,RIPEMD160,ED2K。 所有处理的文件记录,并准备导出到许多不同的验证文件格式:SFV,MD5SUM,SHA...

    SimpleHasher:Simple Hasher是用于验证文件完整性的哈希实用程序。-开源

    Simple Hasher是一个哈希实用程序,用于使用多种受支持的算法来验证文件的完整性:CRC32,ED2K,MD4,MD5,RIPEMD160,SHA1,SHA256,SHA384,SHA512和WHIRLPOOL512。 将记录所有已处理的文件,并准备导出为多种不同...

    Hashtab,MD5等文件校验,原生64位

    这些都是在你验证文件完整性时比较常用的哈希值。现在,大多数下载站点都会在下载链接附件列出该文件的 MD5 哈希值。该程序可以帮助你非常快速并且简易的查看该文件的 MD5 哈希值,并且不需要使用其他的外部文件。...

    HashTab 3.0多国语言版(含简体中文)

    这些都是在你验证文件完整性时比较常用的哈希值。现在,大多数下载站点都会在下载链接附件列出该文件的 MD5 哈希值。该程序可以帮助你非常快速并且简易的查看该文件的 MD5 哈希值,并且不需要使用其他的外部文件。...

    HashTab v5.0.0

    这些都是在你验证文件完整性时比较常用的哈希值。现在,大多数下载站点都会在下载链接附件列出该文件的 MD5 哈希值。该程序可以帮助你非常快速并且简易 的查看该文件的 MD5 哈希值,并且不需要使用其他的外部文件。...

Global site tag (gtag.js) - Google Analytics