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;
}
}相关推荐
SHA1或MD5算法获取文件摘要值(JAVA)
SHA1或MD5算法获取文件摘要值(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
Java获取文件的hash值(SHA256)
在工作开发当中需求要通过文件的hash值比对文件是否被篡改过,于是通过使用了(sha256)hash值进行比对,因为对于任意长度的消息,SHA256都会产生一个256bit长的哈希值,通常用一个长度为64的十六进制字符串来表示。
Java实现常用加密算法 —— SHA256
更多内容请百度和ChatGPT!
Java获取文件的sha256值
上述代码中,我们使用 FileInputStream 以字节流的方式逐块读取文件内容,然后通过 DigestInputStream 将读取的数据传递给 MessageDigest 来计算 SHA256 哈希值。这样可以避免将整个文件加载到内存中,而是通过缓冲区逐块处理文件内容。可以通过流式处理逐块读取文件的内容,并在读取的同时计算 SHA256 哈希值,以避免一次性加载整个文件。Java不需要将整个文件加载到 JVM 内存中才能计算文件的 SHA256 值。
java 获取文件的sha1_Java获取文件SHA1、MD5、CRC32
获取文件的SHA1值public String getFileSHA1(File file) {MessageDigest md = null;FileInputStream fis = null;StringBuilder sha1Str = new StringBuilder();try {fis = new FileInputStream(file);MappedByteBuffer mbb...
java大文件md5快速计算_java 计算文件MD5值 大文件
MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5、SHA1、消息摘要算法。Java已经实现了MD5、SHA1算法。利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及SHA...
guava计算md5、sha1和murmurhash
下面是我用来计算MD5和sha1的一段使用guava的代码。 public static void test002() throws Exception { String msg = StringUtils.repeat('-', 200); int testCount = 100000; long sha1Time = 0L; ...
Windows下cmd命令获取文件MD5、sha1、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...
Java 中文件MD5和SHA1的比较
Java 中文件的MD5和SHA-1的研究 Java中提供了一个类java.security.MessageDigest类是一种提供密码安全消息摘要如SHA-1和MD5功能的引擎类。不需要额外使用第三方组件,且支持超大文件。
Java利用MessageDigest获取字符串或文件MD5详解
MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5、SHA1、消息摘要算法。 Java已经实现了MD5、SHA1算法。利用java.security.MessageDigest类就可以获取字
JAVA实现MD5算法、SHA1算法和SHA256算法
JAVA实现MD5算法和SHA1算法 MD5和SHA1是最常见的哈希算法。JAVA中的hashCode是int类型的,占64位。 MD5是128位的哈希码计算算法; SHA1是160位的哈希码计算算法;
Guava生成MD5、SHA1、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 ...
加密算法比较:SHA1,SHA256(SHA2),MD5
以一个60M的文件为测试样本,经过1000次的测试平均值,三种算法的表现为: MD5算法运行1000次的平均时间为:226ms SHA1算法运行1000次的平均时间为:308ms SHA256算法运行1000次的平均时间为:473ms 安全性方面: 显然SHA256(又称SHA2)的安全性最高,但是耗时要比其他两种多很多。 MD5相对较容易碰撞: SHA1:2017年2月23日,Goo...
Java 常见摘要算法——md5、sha1、sha256
目录 摘要算法简介 md5 使用jdk内置方法实现md5加密 使用bc方式实现md5加密 使用cc方式实现md5加密 sha1 使用jdk内置方法实现sha1加密 使用bc方式实现sha1加密 使用cc方式实现sha1加密 实现sha256的代码和sha1的代码相似 摘要算法简介 摘要算法,也是加密算法的一种,还有另外一种...
java sha1_Java 常见摘要算法——md5、sha1、sha256
目录实现sha256的代码和sha1的代码相似摘要算法简介摘要算法,也是加密算法的一种,还有另外一种叫法:指纹。摘要算法就是对指定的数据进行一系列的计算,然后得出一个串内容,该内容就是该数据的摘要。不同的数据产生的摘要是不同的,所以,可以用它来进行一些数据加密的工作:通过对比两个数据加密后的摘要是否相同,来判断这两个数据是否相同。还可以用来保证数据的完整性,常见的软件在发布之后,会同时发布软件的m...
727




被折叠的 条评论
为什么被折叠?



