JAVA计算文件的MD5及SHA1等值

java获取大文件MD5SHA1,CRC32码 本人在项目中因为上传需要验证文件是否重复而去找MD5SHA1,CRC32码,一下是我自己通过网上资源整理后的.java文件,大家可以借鉴一下,有什么问题也可以留言给我噢。 阅读详情
public class DigestUtil {

    /**
     * 
     * @param file 
     * @param algorithm 所请求算法的名称  for example: MD5, SHA1, SHA-256, SHA-384, SHA-512 etc. 
     * @return
     */
    public static String getFileMD5(File file,String algorithm) {

        if (!file.isFile()) {
            return null;
        }

        MessageDigest digest = null;
        FileInputStream in = null;
        byte buffer[] = new byte[1024];
        int len;

        try {
            digest = MessageDigest.getInstance(algorithm);
            in = new FileInputStream(file);
            while ((len = in.read(buffer, 0, 1024)) != -1) {
                digest.update(buffer, 0, len);
            }
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }

        BigInteger bigInt = new BigInteger(1, digest.digest());
        return bigInt.toString(16);
    }

    /**
     * 获取文件夹中文件的MD5值
     * 
     * @param dirFile
     * @param algorithm 所请求算法的名称  for example: MD5, SHA1, SHA-256, SHA-384, SHA-512 etc. 
     * @param listChild 是否递归子目录中的文件
     * @return
     */
    public static Map<String, String> getDirMD5(File dirFile,String algorithm, boolean listChild) {

        if (!dirFile.isDirectory()) {
            return null;
        }

        // <filepath,algCode>
        Map<String, String> pathAlgMap = new HashMap<String, String>();
        String algCode;
        File files[] = dirFile.listFiles();

        for (int i = 0; i < files.length; i++) {
            File file = files[i];
            if (file.isDirectory() && listChild) {
                pathAlgMap.putAll(getDirMD5(file, algorithm, listChild));
            } else {
                algCode = getFileMD5(file, algorithm);
                if (algCode != null) {
                    pathAlgMap.put(file.getPath(), algCode);
                }
            }
        }
        return pathAlgMap;
    }
}

java实现MD5sha1和sha256实操理论及使用代码讲解 在信息安全领域,经常会用到MD5SHA1、SHA256算法。这三种算法都属于散列算法,或者叫作哈希算法。它们具有输入任意长度,输出长度固定,以及单向性(无法根据散列值还原出消息)的特点。1、安全散列算法(缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。2、SHA家族的六个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512、SHA3,由美国国家安全局(NSA)所设计。 阅读详情

相关推荐

SHA1MD5算法获取文件摘要值(JAVA)

SHA1MD5算法获取文件摘要值(JAVA)

sha1java实现

java实现hash sha1

SHA256 HASH计算方法,大文件、小文件、流式读取计算

SHA256 HASH计算方法,大文件、小文件、流式读取计算

java生成文件MD5值和SHA1

package com.gg; import java.io.*; import java.math.BigInteger; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** 生成文件MD5值 生成文件SHA1值 */ public cla

qq_45273160的博客 727

Java获取文件的hash值(SHA256)

在工作开发当中需求要通过文件的hash值比对文件是否被篡改过,于是通过使用了(sha256)hash值进行比对,因为对于任意长度的消息,SHA256都会产生一个256bit长的哈希值,通常用一个长度为64的十六进制字符串来表示。

筱白爱学习!的博客 7912

Java实现常用加密算法 —— SHA256

更多内容请百度和ChatGPT!

m0_46713218的博客 9732

Java获取文件的sha256值

上述代码中,我们使用 FileInputStream 以字节流的方式逐块读取文件内容,然后通过 DigestInputStream 将读取的数据传递给 MessageDigest 来计算 SHA256 哈希值。这样可以避免将整个文件加载到内存中,而是通过缓冲区逐块处理文件内容。可以通过流式处理逐块读取文件的内容,并在读取的同时计算 SHA256 哈希值,以避免一次性加载整个文件Java不需要将整个文件加载到 JVM 内存中才能计算文件的 SHA256 值。

文盲青年的博客 1728

java 获取文件sha1_Java获取文件SHA1MD5、CRC32

获取文件SHA1值public String getFileSHA1(File file) {MessageDigest md = null;FileInputStream fis = null;StringBuilder sha1Str = new StringBuilder();try {fis = new FileInputStream(file);MappedByteBuffer mbb...

weixin_35745051的博客 1064

java文件md5快速计算_java 计算文件MD5值 大文件

MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5SHA1、消息摘要算法Java已经实现了MD5SHA1算法。利用java.security.MessageDigest类就可以获取字符串和文件MD5以及SHA...

weixin_39888180的博客 3112

guava计算md5sha1和murmurhash

下面是我用来计算MD5sha1的一段使用guava的代码。 public static void test002() throws Exception { String msg = StringUtils.repeat('-', 200); int testCount = 100000; long sha1Time = 0L; ...

kanpiaoxue的专栏 2852

Windows下cmd命令获取文件MD5sha1、sha256

打开cmd窗口,输入命令 certutil -hashfile md5/sha1/sha256 D:\Download>certutil -hashfile exchange1_0_1.zip MD5 MD5 的 exchange1_0_1.zip 哈希: 0c62bec88566385b7d0cd8db222de4d4 CertUtil: -hashfile 命令成功完成。 D:\Do...

Kerwin Ma 的博客 3012

Java文件MD5SHA1的比较

Java文件MD5和SHA-1的研究 Java中提供了一个类java.security.MessageDigest类是一种提供密码安全消息摘要如SHA-1和MD5功能的引擎类。不需要额外使用第三方组件,且支持超大文件

Java利用MessageDigest获取字符串或文件MD5详解

MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5SHA1、消息摘要算法。            Java已经实现了MD5SHA1算法。利用java.security.MessageDigest类就可以获取字

叉叉哥的BLOG 6万+

JAVA实现MD5算法SHA1算法和SHA256算法

JAVA实现MD5算法SHA1算法 MD5SHA1是最常见的哈希算法JAVA中的hashCode是int类型的,占64位。 MD5是128位的哈希码计算算法SHA1是160位的哈希码计算算法

qq_27198345的博客 1551

Guava生成MD5SHA1、SHA256

import com.google.common.base.Charsets; import com.google.common.hash.Hashing; import org.junit.jupiter.api.Test; /** * @description: 单测 * @author: lizz * @date: 2020/3/9 2:21 下午 */ public class ...

进击的小白 3470

加密算法比较:SHA1,SHA256(SHA2),MD5

以一个60M的文件为测试样本,经过1000次的测试平均值,三种算法的表现为: MD5算法运行1000次的平均时间为:226ms SHA1算法运行1000次的平均时间为:308ms SHA256算法运行1000次的平均时间为:473ms 安全性方面: 显然SHA256(又称SHA2)的安全性最高,但是耗时要比其他两种多很多。 MD5相对较容易碰撞: SHA1:2017年2月23日,Goo...

mazhongjia的博客 8494

Java 常见摘要算法——md5sha1、sha256

目录 摘要算法简介 md5 使用jdk内置方法实现md5加密 使用bc方式实现md5加密 使用cc方式实现md5加密 sha1 使用jdk内置方法实现sha1加密 使用bc方式实现sha1加密 使用cc方式实现sha1加密 实现sha256的代码和sha1的代码相似 摘要算法简介   摘要算法,也是加密算法的一种,还有另外一种...

JOKER0707的博客 1210

java sha1_Java 常见摘要算法——md5sha1、sha256

目录实现sha256的代码和sha1的代码相似摘要算法简介摘要算法,也是加密算法的一种,还有另外一种叫法:指纹。摘要算法就是对指定的数据进行一系列的计算,然后得出一个串内容,该内容就是该数据的摘要。不同的数据产生的摘要是不同的,所以,可以用它来进行一些数据加密的工作:通过对比两个数据加密后的摘要是否相同,来判断这两个数据是否相同。还可以用来保证数据的完整性,常见的软件在发布之后,会同时发布软件的m...

weixin_29367131的博客 1243
上一篇: 利用JAVAMail发取和发送gmail邮件
下一篇: Android 实现应用程序添加快捷方式
evantxw
博客等级 码龄16年 0粉丝 9原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值