此网页仅供信息参考之用。部分服务和功能可能在您所在的司法辖区不可用。

什么是密码学哈希?

密码学哈希是一种把数据转换成固定长度摘要的计算方法。无论输入是一句话还是一个大文件,只要使用同一种哈希算法,就会得到该算法规定长度的结果,这个结果称为哈希值或摘要。

它很像数据的“指纹”:输入不变,算出的哈希值就不变;输入哪怕只改动一个字符,结果通常也会明显不同。因此,别人可以重新计算哈希值,检查自己拿到的数据是否与原数据一致,而不必逐字比较全部内容。

这个比喻也有边界。哈希值不是数据的缩写,不能用它还原原文;它也不是绝对唯一编号。安全的密码学哈希追求的是让反推输入或故意找到相同结果在计算上极其困难,而不是从数学上保证碰撞永远不会发生。

哈希计算的输入与输出

哈希算法处理的是一串确定的二进制数据。文字、图片或交易在计算前都要先转换成字节;字符编码、字段顺序,或者把结构化信息按规则排列成字节的方式不同,输入就不同,结果也会不同。这个排列过程通常称为序列化。

以 SHA-256 为例,它总是输出 256 位,也就是 32 字节。哈希值经常写成 64 个十六进制字符,方便人和软件显示。下面两个输入只差一个字母的大小写,但结果完全不同:

输入 SHA-256 哈希值
hello 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Hello 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

相同输入会稳定得到相同结果,所以不同参与者可以独立验证。结果变化明显,则便于发现输入发生过变化。但仅凭“看起来随机”不能判断一个算法是否安全;安全性还取决于算法能否抵抗特定攻击。

密码学哈希的三项重要性质

密码学哈希通常需要让以下三件事在现实计算条件下难以完成:

  • 已知一个哈希值,难以找到能够产生该结果的输入,这称为原像抗性。通俗地说,不能把哈希值当成可直接解码的压缩文件。
  • 已知一份输入,难以再找到另一份不同输入,使两者得到相同哈希值,这称为第二原像抗性。
  • 难以找到任意两份不同输入,使它们得到相同哈希值,这称为碰撞抗性。

因为可能的输入数量远多于固定长度的输出数量,碰撞在数学上一定存在。安全目标不是消灭碰撞,而是让攻击者无法在可行成本内找到可利用的碰撞。

“难以反推”也不表示哈希能隐藏所有秘密。如果输入范围很小或容易猜,例如常见密码,攻击者可以逐个尝试候选值并比较结果。因此,保存密码通常需要专门的密码哈希方案,还要混入每条记录各自的随机数据(盐值),并设置每次猜测所需计算量(成本参数)。不能只对密码做一次普通快速哈希。

哈希、加密、数字签名和校验和的区别

这几种技术都可能用于处理或检查数据,但解决的问题不同:

方法 主要作用 能否恢复原数据 是否需要密钥
密码学哈希 生成数据摘要,帮助检查完整性或构建其他密码学机制 设计目标是不从摘要反推输入 普通哈希不需要
加密 防止未获授权的人读取内容 持有正确密钥时可以解密 需要
数字签名 证明持有相应私钥的一方授权了特定数据,并检查数据是否被改动 签名不是用来恢复原数据的 签名和验证使用密钥对
普通校验和 发现传输或存储中的意外错误 不能据此恢复原数据 通常不需要

哈希本身不能证明是谁创建了数据。数字签名系统通常先计算数据摘要,再让私钥对与该数据相关的结果进行签名;验证者还需要公钥和签名规则,才能检查授权关系。普通校验和则主要防止偶然损坏,通常不能抵抗攻击者有意修改数据。

区块链如何使用哈希

区块链不会只靠一个哈希值维护账本。哈希通常与数字签名、网络验证、共识和数据结构一起使用,承担以下任务。

标识交易或其他数据

部分网络会根据按照协议格式排列好的交易数据计算标识符。例如,Bitcoin 交易标识符(TXID)来自交易序列化数据的哈希。只要参与者使用相同规则处理相同数据,就能独立算出相同标识符。

不过,“交易哈希”不是所有网络都采用同一算法或同一输入格式的通用编号。网络名称、算法和序列化规则都是含义的一部分,只复制一串字符可能不足以唯一说明对象。

连接区块并发现历史改动

区块可以保存前一个区块头的哈希。前一块的数据发生变化时,其哈希也会变化,后续区块保存的值便不再匹配。Bitcoin 区块头和 Ethereum 区块都包含指向前序区块的哈希信息。

这种连接让历史改动容易被发现,但不会从物理上阻止任何人重新计算哈希。要判断网络最终接受哪段历史,还需要验证规则、共识机制和参与者对网络状态的判断。

汇总大量数据并提供包含证明

默克尔树等数据结构会逐层组合并哈希多项数据,最后得到一个根哈希。验证者可以用较少的中间哈希检查某项数据是否包含在已承诺的数据集合中,而不必每次传输全部内容。Ethereum 的默克尔帕特里夏树就是一种使用哈希连接状态数据的结构。

根哈希只能说明“给定数据与这份密码学承诺是否一致”。它不能证明输入信息来自可信来源,也不能证明链外事件真实发生。

参与工作量证明

在工作量证明系统中,参与者反复调整候选区块中的数据并计算哈希,寻找符合协议难度条件的结果。其他节点可以快速检查结果是否达标。哈希在这里提供可重复计算的难题和验证结果,但由谁的区块被网络接受,仍由完整的共识规则决定。

哈希算法不能随意互换

SHA-256、SHA-3 和其他密码学哈希是不同算法系列。即使两种算法都输出 256 位,对同一输入也不会得到相同结果。协议或文件校验说明必须同时给出算法名称和输入处理方式,不能只写“计算一个哈希”。

常见的安全哈希算法包括 SHA-2 和 SHA-3 两个系列。美国国家标准与技术研究院(NIST)的安全哈希标准收录 SHA-2 系列,SHA-3 标准收录 SHA-3 系列。算法名称相近也不代表实现细节相同。系统应使用其协议明确要求且仍适合当前用途的算法,不能因为旧算法仍能输出结果,就认为它仍满足安全要求。

常见问题

哈希值能够解密吗?

不能把普通密码学哈希“解密”,因为哈希不是加密,也没有对应的解密密钥。攻击者可能通过猜测输入、穷举较小的输入空间或利用算法弱点找到匹配值,但这不是从摘要直接还原原文。

两份数据的哈希值相同,内容就一定相同吗?

不能说数学上绝对相同,因为固定长度输出必然允许碰撞。使用仍具备足够碰撞抗性的算法,并确认双方采用相同编码和计算规则时,相同哈希值通常可以作为数据一致的强证据。

看到哈希值就能确认文件安全吗?

不能。你还需要知道预期哈希值来自哪里。如果文件和页面上的哈希值都由攻击者替换,重新计算后仍可能“匹配”。哈希能检查数据与某个已知摘要是否一致,但摘要本身必须通过可信渠道获得。

区块链使用哈希,就代表链上信息一定真实吗?

不代表。哈希可以帮助检查数据是否变化以及不同数据结构是否匹配,却不能判断输入内容是否描述了真实世界。数据来源、签名授权、网络验证和共识仍需分别判断。

相关词条

继续了解区块、区块链、公钥和私钥,或返回加密货币术语表。

参考来源

免责声明
本文章可能包含不适用于您所在地区的产品相关内容。本文仅致力于提供一般性信息,不对其中的任何事实错误或遗漏负责任。本文仅代表作者个人观点,不代表欧易的观点。 本文无意提供以下任何建议,包括但不限于:(i) 投资建议或投资推荐;(ii) 购买、出售或持有数字资产的要约或招揽;或 (iii) 财务、会计、法律或税务建议。 持有的数字资产 (包括稳定币) 涉及高风险,可能会大幅波动,甚至变得毫无价值。您应根据自己的财务状况仔细考虑交易或持有数字资产是否适合您。有关您具体情况的问题,请咨询您的法律/税务/投资专业人士。本文中出现的信息 (包括市场数据和统计信息,如果有) 仅供一般参考之用。尽管我们在准备这些数据和图表时已采取了所有合理的谨慎措施,但对于此处表达的任何事实错误或遗漏,我们不承担任何责任。 © 2026 OKX。本文可以全文复制或分发,也可以使用本文 100 字或更少的摘录,前提是此类使用是非商业性的。整篇文章的任何复制或分发亦必须突出说明:“本文版权所有 © 2026 OKX,经许可使用。”允许的摘录必须引用文章名称并包含出处,例如“文章名称,[作者姓名 (如适用)],© 2026 OKX”。部分内容可能由人工智能 (AI) 工具生成或辅助生成。不允许对本文进行衍生作品或其他用途。

相关推荐

查看更多
what-is-blockchain

什么是区块链?

区块链可以理解为由多个参与者共同维护的数字记录本。新的记录会被整理成区块,区块再按顺序连接起来。参与网络的计算机按照同一套规则检查更新,因此不需要只依赖一个数据库管理员来决定哪份记录有效。 更准确地说,区块链把数据结构、密码学、分布式复制和共识规则组合在一起。它能让历史改动更容易被发现,并在网络的安全前提成立时越来越难以重写,但这不等于任何情况下都绝对无法修改。 因此,区块链不只是一个包含哈希的数
2026年10月29日
crypto-glossary-cover-v5.contentful

加密货币与区块链术语表

这份 A–Z 术语表汇集区块链、交易、钱包与链上应用中的常见概念;选择字母可跳转到对应章节,选择术语名称可查看该术语的详细文章。 [A](#a) · [B](#b) · [C](#c) · [D](#d) · [E](#e) · [F](#f) · [G](#g) · [H](#h) · [I](#i) · [J](#j) · [K](#k) · [L](#l) · [M](#m) · [N](#
2026年10月29日
Crypto adoption generic thumbnail

什么是 DeFi?

去中心化金融(decentralized finance,DeFi)是主要通过区块链和智能合约提供资产兑换、借贷等金融功能的一类应用。智能合约是部署在区块链上、按预设代码处理操作的程序。用户通常用自己的钱包发出交易,由合约检查条件并更新链上记录,而不必把每一步都交给同一家服务商的内部数据库处理。 DeFi 不是某一个项目、区块链或产品,也不是“所有环节都没有管理者”。一套 DeFi 应用可能让合约
2026年10月29日
decentralized-exchange-dex

什么是 DEX?

去中心化交易所(decentralized exchange,DEX)是一类让用户通过区块链协议或智能合约交换数字资产的交易系统。智能合约是部署在区块链上、按代码检查并执行操作的程序。用户通常从自己的钱包发出操作,交易由这类链上程序按规则结算,不必先把资产记入同一家交易平台控制的内部账户。 DEX 不是一种固定的软件结构,也不等于“每一步都在链上”或“没有任何运营者”。有的 DEX 用资金池自动报
2026年10月29日
thumbnail:dao

什么是 DAO?

去中心化自治组织(decentralized autonomous organization,DAO)是一种让多人按照事先约定的规则共同作决定、管理资金或维护项目的组织方式。它常把成员资格、提案、投票结果或资金权限记录在区块链上,使参与者能够核对规则和执行结果,而不必把所有决定都交给一个管理员。 DAO 不是一种固定的软件产品,也不等于“没有负责人”。有的 DAO 主要用链上投票控制智能合约,也就
2026年10月29日
DApps generic thumb

什么是 DApp?

去中心化应用(decentralized application,DApp)是一种把部分核心规则或状态,例如余额、所有权和授权记录,交给区块链等去中心化网络执行和保存的应用。用户通常仍通过网页或手机界面操作,但关键结果可以由网络中的多个参与者按共同规则验证,而不只依赖应用运营方的一份数据库。 “去中心化”描述的是应用的控制和依赖怎样分布,不是一张自动获得的标签。一个 DApp 可以在链上运行核心合
2026年10月29日
查看更多