美文网首页
Java 文件完整性校验 MD5 sha1 sha256 sha

Java 文件完整性校验 MD5 sha1 sha256 sha

作者: 是我拉叔 | 来源:发表于2019-08-21 08:56 被阅读0次

    暂未验证


    https://blog.csdn.net/u011311291/article/details/81173524

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

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

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

    org.apache.commons.codec.digest.DigestUtils

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

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

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

    实现步骤如下:

    pom.xml 添加依赖

    <dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.12</version></dependency>

    实现类:

    package file.integrity.check;import org.apache.commons.codec.digest.DigestUtils;import java.io.File;import java.io.FileInputStream;publicclass Application {

        publicstaticvoidmain(String[] args)throws Exception {

            File file =newFile("/path/filename");

            FileInputStream fileInputStream =new FileInputStream(file);

            String hex = DigestUtils.sha512Hex(fileInputStream);

            System.out.println(hex);

        }

    }

    或者:

    import org.apache.commons.codec.digest.DigestUtils;importstatic org.apache.commons.codec.digest.MessageDigestAlgorithms.SHA_512;import java.io.File;publicclass Application {

        publicstaticvoidmain(String[] args)throws Exception {

            File file =newFile("/path/filename");

            String hex =new DigestUtils(SHA_512).digestAsHex(file);

            System.out.println(hex);

        }

    }

    相关文章

      网友评论

          本文标题:Java 文件完整性校验 MD5 sha1 sha256 sha

          本文链接:https://www.haomeiwen.com/subject/nuivsctx.html