java 对象md5_Java从File或InputStream对象生成MD5摘要

在如何计算字符串的MD5摘要中?示例,您将看到如何从文本或字符串中计算MD5摘要。我们正在使用Apache Commons Codec库,并使用该DigestUtils.md5Hex()方法生成MD5。我在那篇文章中提到,我们还可以生成byte数组和InputStream对象的MD5摘要。在下面的示例中,您将看到一个示例,该示例生成文件中存储的文本数据的MD5摘要。package org.nhooo.example.commons.codec;

import org.apache.commons.codec.digest.DigestUtils;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

public class MD5FileHashDemo {

public static void main(String[] args) {

try {

// 定义数据文件路径并创建一个InputStream对象。

String data = System.getProperty("user.dir") + "/target/classes/data.txt" ;

File file = new File(data);

InputStream is = new FileInputStream(file);

// 计算给定InputStream对象的MD5摘要。

// 它将生成一个32个字符的十六进制字符串。

String digest = DigestUtils.md5Hex(is);

System.out.println("Digest = " + digest);

System.out.println("Length = " + digest.length());

} catch (IOException e) {

e.printStackTrace();

}

}

}

我们需要做的第一件事是将import语句添加到我们的类中以导入org.apache.commons.codec.digest.DigestUtils该类。该DigestUtils.md5Hex()方法定义为静态方法,因此DigestUtils在使用它之前不必创建类的实例。在创建InputStream对象之前,我们先定义数据文件的路径。我正在使用Apache Maven作为构建工具来创建代码片段。这就是为什么您看到我的路径的原因,该数据文件位于target / classes目录下,因为该目录是Maven放置编译后的类和资源文件的默认位置。接下来,我们从定义的路径创建File对象,然后创建File对象InputStream。

要生成摘要,我们可以简单地将InputStream对象的实例传递给DigestUtils.md5Hex()方法。如果在此过程中没有发生错误,我们将获得一个32字符的十六进制字符串作为输出。您要做的最后一件事是捕获方法抛出的可能异常。因此,我们添加了try-catch块并打印了错误堆栈跟踪,以帮助我们识别任何错误。

这是上面的代码片段生成的示例输出:Digest = bafb2ec738d6de85170073c80a1008ad

Length = 32

Maven依赖

commons-codec

commons-codec

1.12

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值