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

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

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 文件完整性校验 sha512相关推荐

  1. Java 文件完整性校验 MD5 sha1 sha256 sha224 sha384 sha512

    由于项目中需要使用文件做备份,并且要提供备份文件的下载功能.备份文件体积较大,为确保下载后的文件与原文件一致,需要提供文件完整性校验. 网上有这么多此类文章,其中不少使用到了 org.apache.c ...

  2. Java文件完整性校验SHA256

    前言 ❤Java学习路线个人总结-博客 ❤欢迎点赞

  3. 文件完整性校验码计算工具

    文件完整性校验码计算工具 工具介绍 支持算法:CRC32,MD2,MD4,MD5,SHA1,SHA256,SHA512,RipeMD128,RIPEMD160,ED2K 多个哈希类型可以同时生成每个文 ...

  4. 文件完整性校验之MD5校验

    文件完整性校验之MD5校验 在现代计算机系统中,文件安全和完整性保护是至关重要的.不仅是个人用户需要保护他们的数据免受恶意软件和黑客攻击,企业和机构也需要确保其敏感数据的完整性和机密性. MD5校验是 ...

  5. java 文件md5校验_Java 获取 文件md5校验码

    讯雷下载的核心思想是校验文件的md5值,两个文件若md5相同则为同一文件. 当得到用户下载某个文件的请求后它根据数据库中保留的文件md5比对出拥有此文件的url, 将用户请求挂接到此url上并仿造一个 ...

  6. ftp 文件完整性校验_FTP空间是什么?如何获取免费FTP空间吗?

    FTP是File Transfer Protocol的简称,又被称为文件传输协议,是一种将数据上传和下载到Internet的方式.FTP是一套公认的且简单的协议,是传输单个文件以及多个文件的一个最有效 ...

  7. java 文件crc校验_JavaCRC校验原理

    一.基本原理 CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列:附加在数据序列之后的这个检验码与数据序列的内容之间存在着 ...

  8. java 文件crc校验_Java 对文件进行 CRC32 校验

    [java]代码库import java.util.zip.CheckedInputStream; import java.util.zip.CRC32; import java.io.File; i ...

  9. java 文件路径校验_java中File的绝对路径和相对路径的校验

    1.首先看一下File中参数的集中形式 ①//构造函数File(String pathname) File f1 = new File("c:\\1.txt"); ②//File( ...

最新文章

  1. include_once 问题
  2. Microsoft Visual Studio 宏脚本添加注释模板
  3. python类属性的调用方法_问一个关于PYTHON类属性调用方法的问题
  4. SQL记录-PLSQL数组
  5. typora 字体颜色_Typora 使用教程
  6. tcpdump捕获流量,并切分多个文件保存
  7. STM32L之可编程电压检测(PVD)
  8. DM框架中CString/CStringW 转 double (c++通用)
  9. 基于jquery的复选树的插件
  10. 虚拟服务器 ssl,虚拟主机如何装ssl
  11. 采用install.sh安装脚本进行快速安装astercc
  12. 杭电oj1257最少拦截系统(贪心)
  13. iOS 音乐播放器demo讲解
  14. 39.JavaScript中Promise的基本概念、使用方法,回调地狱规避、链式编程
  15. Node.js学习--07--项目--注册登录
  16. 破解ISAPI_Rewrite3.1以及相关知识
  17. 微信小程序分析送积分功能如何实现_微信小程序积分商城该怎么进行操作?
  18. 虚拟机如何支持硬件虚拟化
  19. ubuntu20.04搭建janus服务器
  20. 重置SMC和NVRAM解决MacBookPro卡顿问题

热门文章

  1. 笔记本“电源已接通,未充电”的解决办法
  2. import theano时,系统报错无法定位程序输入点__gxx_personality_sj0 于动态链接库libstdc+±6.dll。
  3. AcWing 3465. 病毒朔源 (邻接表DFS 详解)
  4. C#获取本地磁盘目录
  5. 论文解读|存储集中化对多地点报童问题中预期成本的影响
  6. 破解VCD无法复制方法 提取加密vcd中的DAT文件的解决方案
  7. JavaWeb学习笔记7
  8. 测试面试被问“期望薪资多少”,不要傻傻直接报价,高情商都这样说
  9. Docker Desktop requires a newer WSL kernel version.
  10. JS中this关键字详解