Java中如何计算文件的MD5与SHA哈希值

使用MessageDigest结合FileInputStream流式读取文件,可安全高效计算MD5或SHA哈希值,推荐SHA-256等强算法以保障安全性。

java中如何计算文件的md5与sha哈希值

在Java中计算文件的MD5或SHA哈希值,通常使用MessageDigest类结合文件输入流来实现。这种方式适用于大文件,避免将整个文件加载到内存中。

使用MessageDigest计算文件哈希值

MessageDigest 是Java安全包(java.security)中的核心类,支持多种哈希算法,如MD5、SHA-1、SHA-256等。通过配合FileInputStream和缓冲区读取,可以高效地计算任意大小文件的摘要。

注意:MD5已不推荐用于安全场景(如密码存储),建议使用SHA-256等更强算法。

计算文件MD5值

以下是计算文件MD5的示例代码:

import java.io.FileInputStream;import java.io.IOException;import java.math.BigInteger;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class FileHash {    public static String calculateMD5(String filePath) throws IOException, NoSuchAlgorithmException {        MessageDigest md = MessageDigest.getInstance("MD5");        try (FileInputStream fis = new FileInputStream(filePath)) {            byte[] buffer = new byte[8192];            int bytesRead;            while ((bytesRead = fis.read(buffer)) != -1) {                md.update(buffer, 0, bytesRead);            }        }        byte[] digest = md.digest();        return String.format("%032x", new BigInteger(1, digest));    }}

计算文件SHA哈希值(如SHA-256)

计算SHA-256的方式与MD5类似,只需更改算法名称:

立即学习“Java免费学习笔记(深入)”;

public static String calculateSHA256(String filePath)         throws IOException, NoSuchAlgorithmException {    MessageDigest md = MessageDigest.getInstance("SHA-256");    try (FileInputStream fis = new FileInputStream(filePath)) {        byte[] buffer = new byte[8192];        int bytesRead;        while ((bytesRead = fis.read(buffer)) != -1) {            md.update(buffer, 0, bytesRead);        }    }    byte[] digest = md.digest();    return String.format("%64x", new BigInteger(1, digest));}

支持的SHA算法包括:

SHA-1("SHA-1""SHA") SHA-256("SHA-256") SHA-512("SHA-512"

工具方法封装

可将逻辑封装为通用方法,按需传入算法名:

public static String getFileHash(String filePath, String algorithm)         throws IOException, NoSuchAlgorithmException {    MessageDigest md = MessageDigest.getInstance(algorithm);    try (FileInputStream fis = new FileInputStream(filePath)) {        byte[] buffer = new byte[8192];        int bytesRead;        while ((bytesRead = fis.read(buffer)) != -1) {            md.update(buffer, 0, bytesRead);        }    }    byte[] digest = md.digest();    return String.format("%x", new BigInteger(1, digest));}

调用示例:

try {    String md5 = getFileHash("example.txt", "MD5");    String sha256 = getFileHash("example.txt", "SHA-256");    System.out.println("MD5: " + md5);    System.out.println("SHA-256: " + sha256);} catch (Exception e) {    e.printStackTrace();}

基本上就这些。关键是使用流式读取避免内存溢出,同时选择合适的摘要算法。对于安全性要求高的场景,优先使用SHA-2系列算法。

以上就是Java中如何计算文件的MD5与SHA哈希值的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/203489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月1日 22:34:37
下一篇 2025年11月1日 22:35:28

相关推荐

  • 币安交易所app下载注册全教程指南 币安注册入口

    欢迎来到币安!作为全球领先的数字资产交易平台,安全、便捷地开始您的交易之旅至关重要。本教程将为您提供从app下载、账户注册到安全设置的完整指南。 币安官网直达: 币安官方app: 一、 币安App下载与注册流程 在开始注册前,您需要先下载官方币安App。建议直接访问币安官方网站,找到App下载页面,…

    2025年12月11日 好文分享
    000
  • 以太坊app安装链接 以太坊免费app推荐

    对于希望管理、交易或探索以太坊生态系统的用户来说,选择一款安全可靠的app至关重要。本文为您精选了市场上顶级的免费以太坊应用程序,涵盖了从综合交易平台到专业账户的各类工具,帮助您轻松入门并安全地进行数字资产操作。 顶级以太坊交易与管理App推荐 这些平台是全球领先的加密货币交易所,提供强大的以太坊(…

    2025年12月11日
    000
  • 怎么查看以太坊代币 以太坊币查看买卖工具2025汇总

    掌握如何查询您的以太坊代币是管理数字资产的第一步。本文将详细介绍几种简单有效的查询方法,并为您汇总2025年值得关注的主流查看与买卖工具,帮助您安全、高效地进行资产管理。 一、以太坊代币基础查询方法 1、使用区块链浏览器(例如Etherscan):这是最直接、最透明的查询方式。您只需要将您的以太坊公…

    2025年12月11日
    000
  • 以太坊名下的恐龙币是什么?在哪里买?

    本文旨在澄清%ignore_a_1%网络上“恐龙币”的概念,并提供一个关于如何安全查找和获取这类代币的通用指南。对于希望了解和参与此类新兴项目的用户,理解其高风险特性和正确操作流程至关重要。 以太坊全球安全买卖平台官网入口: 1、币安binance:  2、欧易OKX: 3、火币HTX: 4、大门G…

    2025年12月11日
    000
  • 以太坊出的铭文在哪买 一文了解以太坊铭文购买软件大全

    随着以太坊铭文生态的快速发展,许多用户关心在哪里可以方便地进行交易。本文将为您盘点几个主流的以太坊铭文购买软件和平台,详细介绍各自的特点和使用方式,帮助您快速找到合适的入口。 以太坊主流交易所官网地址及app下载链接 1、币安Binance: 2、欧易OKX: 3、火币HTX: 4、大门Gate.i…

    2025年12月11日
    000
  • btc十年前怎么入手 BTC入手软件汇总

    回顾大约十年前,获取BTC的途径与今天相比有着天壤之别,当时更多依赖于技术社群和早期爱好者的探索。本文将带您回顾那个时代的主流入手方式,并盘点当时常用的软件工具,为对数字资产历史感兴趣的读者提供一份清晰的指南。 一、十年前的入手途径 1、通过算力贡献获取 在早期,个人计算机的处理器(CPU)甚至后来…

    2025年12月11日
    000
  • 一文详解:为何比特币再也不会跌破5万美元

    比特币市场以其剧烈波动而闻名,但随着其发展阶段的演进,许多分析人士认为,5万美元已不仅仅是一个价格数字,更是一个坚实的价值中枢和重要的心理关口。这一论断背后,是机构资本的深度介入、宏观经济环境的根本性变化、技术生态的日益成熟以及市场共识的不断强化等多重因素共同作用的结果。 这些力量共同编织了一张强大…

    2025年12月11日
    000
  • 币安币交易所(虚拟货币) v3.2.3 官方最新安卓版

    币安币交易所是一款在全球范围内广受欢迎的虚拟货币交易服务平台,为用户提供安全、稳定、便捷的数字资产交易体验。它支持包括比特币(BTC)、以太坊(ETH)在内的多种主流加密货币,并提供丰富的交易对和专业的市场图表分析工具。 币安币交易所下载教程 1、请直接点击下方的官方App下载链接,系统将自动开始下…

    2025年12月11日
    000
  • 什么是世界自由金融 (WLFI币)?USD1 的结构、最新动态以及未来介绍

    世界自由金融 (World Liberty Financial, WLFI) 是一个致力于构建去中心化金融新秩序的创新项目,其核心在于通过独特的双代币经济模型,为全球用户提供稳定、高效且无需许可的金融服务。 该体系由两部分构成:一是治理代币WLFI,它赋予持有者参与协议决策的权利,并捕获生态系统的核…

    2025年12月11日
    000
  • 什么是双因素身份验证 (2FA)?它为什么重要?

    双因素身份验证(Two-Factor Authentication, 简称2FA)是一种安全流程,用户在访问账户或系统时,需要提供两种不同类型的凭证来验证自己的身份。它在传统的用户名和密码验证基础上,增加了一道额外的安全屏障。 这种验证方式的核心理念在于,单一的验证因素(比如密码)很容易被破解或窃取…

    2025年12月11日
    000
  • 比特币大盘行情在哪里看 比特币大盘行情查看软件汇总

    对于市场参与者而言,及时准确地获取比特币(BTC)大盘行情是做出决策的关键一步。无论是长期持有者还是短线交易者,都需要一个稳定可靠的行情查看工具。本文将汇总并介绍几类主流的行情查看软件和网站,帮助您找到最适合自己的选择。 一、主流交易所自带行情工具 1、币安(binance):  作为全球领先的交易…

    2025年12月11日
    000
  • atas如何查看以太坊 一文带你了解以太坊atas查看步骤

    想要追踪您在以太坊网络上的交易记录或查看某个地址的资产情况吗?其实过程非常简单。本文将为您详细介绍如何使用主流的以太坊浏览器,轻松掌握查询地址和交易状态的方法,让您对链上动态了如指掌。 以太坊全球主流平台官网直达: 1、币安binance:  2、欧易OKX: 3、火币HTX: 4、大门Gate.i…

    2025年12月11日
    000
  • 以太坊期权怎么玩 以太坊期权的玩法和规则详解

    以太坊期权是一种金融衍生工具,它赋予持有者在未来某个特定时间,以特定价格买入或卖出以太坊的权利,而非义务。用户可以通过它来对市场价格波动进行预判,或用以对冲持仓风险,是一种灵活的策略工具。 以太坊安全交易平台官网入口: 1、币安binance:  2、欧易OKX: 3、火币HTX: 4、大门Gate…

    2025年12月11日
    000
  • 加密货币的牛市与熊市是什么?如何生存并获利?2025新手指南

    核心概念“牛市”与“熊市”。这并非简单的价格涨跌,而是涵盖了市场情绪、资金流动、参与者信心以及宏观经济环境的复杂综合体。牛市,通常指市场普遍看涨,资产价格持续攀升,投资者信心高涨,新入场者络绎不绝,整个市场呈现出一片繁荣景象。 而熊市则恰恰相反,市场弥漫着悲观情绪,资产价格持续下跌,交易量萎缩,许多…

    2025年12月11日
    000
  • 币安binance交易所官方最新网址进入 币安2025官方网站

    为了帮助广大用户安全、准确地访问币安(Binance)交易所,本文将提供2025年官方认证的最新网址入口及详细操作步骤。遵循本指南可以有效规避山寨及钓鱼网站的风险,为您的数字资产安全提供第一道防线。 如何安全访问并注册币安账户 1、直接输入官方网址建议您手动在浏览器地址栏中输入官方网址:。这是最安全…

    2025年12月11日
    000
  • 欧易OKEX新手教程:如何使用快捷买币/卖币?(APP/WEB端)

    欧易OKX作为国际领先的数字资产服务平台,为全球用户提供包括比特币、以太坊等在内的多种数字资产的现货和衍生品交易服务。平台凭借其卓越的技术实力、丰富的交易产品和严格的资金安全管理体系,赢得了广大用户的青睐。 欧易网页端官网入口: App 下载步骤 1、获取官方安装包是开始所有操作的第一步。请直接点击…

    2025年12月11日
    000
  • 比特币大体转让是什么?转让大体比特币怎么算的

    将比特币这类数字资产从一个地址转移到另一个地址,可以理解为在一个公开的、分布式的公共账本上进行一次记录更新。这个过程通过网络共识来确保资产的安全转移,并需要支付一笔小额的网络费用来完成。整个操作是透明且不可逆的。 全球正规比特币转让平台官网入口: 1、币安Binance:  2、欧易OKX: 3、火…

    2025年12月11日
    000
  • 一文带你搞懂加密货币的现货、期货和期权交易有什么区别?

    binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 在加密货币的交易世界里,投资者面对着多种多样的交易工具,其中现货、期货和期权是最为常见的三种。它们各自拥有独特的交易机制、风险特征和适用场景。理解这三者之间的根本区…

    2025年12月11日
    000
  • Web3中的创作者经济是什么?通俗解释Web3中的创作者经济

    Web3中的创作者经济,是一个基于区块链技术构建的,旨在将数字内容的所有权、控制权和价值重新交还给创作者和社区的生态系统。它与我们所熟悉的Web2平台(例如社交媒体、视频网站)主导的模式形成了鲜明对比。在传统的模式中,平台作为中心化的中介,掌握着内容分发、用户数据和收入分配的绝对权力,创作者的收益往…

    2025年12月11日
    000
  • 什么是社交代币?一文带你搞懂社交代币是什么意思

    社交代币,作为一种基于区块链技术的加密货币,正逐渐进入公众视野。它本质上是由个人、品牌或者社区发行的数字资产。这种代币的价值并非锚定于传统的金融资产,而是紧密地与发行者自身的声誉、社区的活跃度以及其创造的内容价值相关联。 持有者通过拥有这些代币,能够获得特定的权限、参与社区治理,甚至分享发行者成长所…

    2025年12月11日
    000

发表回复

登录后才能评论
关注微信