由于项目中需要使用文件做备份,并且要提供备份文件的下载功能。备份文件体积较大,为确保下载后的文件与原文件一致,需要提供文件完整性校验。

网上有这么多此类文章,其中不少使用到了

org.apache.commons.codec.digest.DigestUtils

包中的方法,但是又自己做了大文件的拆分及获取相应校验码的转换。

DigestUtils 包已经提供了为文件流生成校验码的功能,可以直接调用。经测试10几G的文件在30秒内可完成计算。

(网上提供的一些自己拆分大文件的示例,文件较小时结果正确,文件较大时结果就不太可靠了)

实现步骤如下:

  1. pom.xml 添加依赖

    <dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.12</version>
    </dependency>
  2. 实现类:
    package file.integrity.check;
    
    import org.apache.commons.codec.digest.DigestUtils;
    import java.io.File;
    import java.io.FileInputStream; public class Application {
    public static void main(String[] args) throws Exception {
    File file = new File("/path/filename");
    FileInputStream fileInputStream = new FileInputStream(file);
    String hex = DigestUtils.sha512Hex(fileInputStream);
    System.out.println(hex);
    }
    }
  3. 或者:
    import org.apache.commons.codec.digest.DigestUtils;
    import static org.apache.commons.codec.digest.MessageDigestAlgorithms.SHA_512;
    import java.io.File; public class Application {
    public static void main(String[] args) throws Exception {
    File file = new File("/path/filename");
    String hex = new DigestUtils(SHA_512).digestAsHex(file);
    System.out.println(hex);
    }
    }

Java 文件完整性校验 MD5 sha1 sha256 sha224 sha384 sha512的更多相关文章

  1. 用PowerShell的命令行检查文件的校验MD5 SHA1 SHA256

    certutil -hashfile yourfilename.ext MD5 certutil -hashfile yourfilename.ext SHA1 certutil -hashfile ...

  2. 文件 MD5 SHA1 SHA256 SHA512 校验码生成工具 V1.3

    [程序介绍]免费开源的 文件 MD5 SHA1 SHA256 SHA512 校验码生成工具 V1.3 这是一个有意思的程序,同一个程序,即是图形程序,又是命令行程序.程序作用:输入一个文件的路径,输出 ...

  3. Hash校验工具、MD5 SHA1 SHA256命令行工具

    MyHash 检验工具http://www.zdfans.com/html/4346.html HashMyFiles Hash校验工具http://www.nirsoft.net/utils/has ...

  4. Windows自带MD5 SHA1 SHA256命令行工具

    感恩大佬LiuYanYGZ的文章 MyHash 检验工具http://www.zdfans.com/html/4346.html HashMyFiles Hash校验工具http://www.nirs ...

  5. MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别

    MD5 SHA1 SHA256 SHA512 这4种本质都是摘要函数,不通在于长度  MD5 是 128 位,SHA1  是 160 位 ,SHA256  是 256 位,SHA512 是512 位. ...

  6. You shouldn't use *any* general-purpose hash function for user passwords, not BLAKE2, and not MD5, SHA-1, SHA-256, or SHA-3

    hashlib - Secure hashes and message digests - Python 3.8.3 documentation https://docs.python.org/3.8 ...

  7. Windows命令查看文件MD5,SHA1,SHA256 文件校验

    certutil -hashfile yourfilename.ext MD5 certutil -hashfile yourfilename.ext SHA1 certutil -hashfile ...

  8. 不安装任何软件或脚本使用powershell快速计算文件的MD5/SHA1/SHA256等校验值

    有的时候在检查升级过程中需要对xml文件进行签名,而xml文件中一般都需要包含安装包的SHA256值,这里分享一个使用PowerShell快速计算SHA256等其他值的方法. 一.在需要计算文件SHA ...

  9. 014-操作系统下验证下载文件的 MD5/SHA1/SHA256

    一.mac 1.md5 openssl md5 /path/to/file 新的macOS默认支持:md5 filename 2.sha256 openssl dgst -sha256 /path/t ...

随机推荐

  1. wordpress在首页列出所有分类及分类下的文章

    前面我们谈了wordpress调用指定分类文章,如果想要调用所有分类的文章如何实现呢?比如在wordpress首页列出所有分类及分类下的文章,其实方法类似 <?php $cats = get_c ...

  2. 利用restassured实现http/https接口请求

    话不多说,直接上代码: package com.nuanshui.frms.test.utils.http; import io.restassured.response.Response; impo ...

  3. iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能.代码健壮相关的问题,我们有时还需要考虑到应用安全的问题.那么应用安全的问题涉及到很多方面.比如防止静态分析的,代码混淆.逻辑混淆:防止 ...

  4. LeetCode 422. Valid Word Square

    原题链接在这里:https://leetcode.com/problems/valid-word-square/ 题目: Given a sequence of words, check whethe ...

  5. 【测试题】sequence

    题目 给定一个长度为n(n<=5000)的由['0'..'9']组成的字符串s,v[i,j]表示由字符串s第i到第j位组成的十进制数字. 将它的某一个上升序列定义为:将这个字符串切割成m段不含前 ...

  6. C++ auto 完成类型自动推导与使用

    c++11 允许声明一个变量或对象(object)而不需要指明其类型,只需说明它是auto. 1.如: auto i = 42: //i是整型 double   f(); auto d=f(); // ...

  7. P1005 矩阵取数

    题目链接 看完题可能第一时间并没有清晰的思路.让我们一步一步的来考虑这道题目. 题目中描述操作为每次从所有的行中选取,这样做有些麻烦.仔细思考一下可以发现行与行之间互不干涉,所以我们可以对每行操作到底 ...

  8. Comet OJ - Contest #15 题解

    传送门 \(A\) 咕咕 const int N=1005; int a[N],n,T; int main(){ for(scanf("%d",&T);T;--T){ sc ...

  9. windows自动修复失败,无法启动

    Windows10操作系统于2015年7月29日正式发布,此后,win10也就成了新上市的笔记本电脑或者台式机电脑的预装操作系统!win10系统给我们带了全新的体验,当然也带来了一定的烦恼!就拿win ...

  10. jmeter通过cookie获取图片验证码实现登录2

    在登录时有一张图片验证码,需要获取验证码用于后续登录,见图 1.找到图片验证码接口写入jmeter 2.正则表达式提取cookie 3.Fiddler抓取登录成功的响应cookie,并设置成全局 4. ...