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

什么是密码学哈希?

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

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

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

哈希计算的输入与输出

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

以 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) 工具生成或辅助生成。不允许对本文进行衍生作品或其他用途。

相关推荐

查看更多
consensus-mechanism

什么是共识机制?

共识机制是区块链网络用来决定“接下来接受哪一个区块、采用哪一段账本历史”的一套规则。网络中的节点分别接收和检查数据,即使消息到达时间不同,或有人提交冲突信息,它们仍需要用相同规则得出能够继续处理的结果。 这里的“共识”不表示每个人对所有事情意见一致,也不要求每个节点在同一时刻看到完全相同的数据。它表示:在协议设定的条件成立时,遵守规则的节点最终能够采用兼容的账本历史,并知道哪些交易仍可能变化,哪些
2026年11月9日
what-is-block

什么是区块?

区块可以理解为区块链用来打包新记录的数据包。一个区块通常包含一批交易或其他更新,以及供区块链网络中的节点检查这些内容的信息。除第一个区块外,新区块通常还会保存前一个区块的数字指纹,也就是哈希值,因此区块能够按顺序连接起来。 ![block](//images.ctfassets.net/4nqoo8goeymu/6ilDzmUaRfyrFJPV8ejCuA/33661c529cbe30e097c1
2026年11月9日
candlestick-chart

什么是代币化股票?

代币化股票(tokenized stocks)是用区块链上的代币,表示某只股票本身、与股票有关的权益,或者跟随股票价格变化的合约。它不是一种结构完全统一的产品:“代币名称对应某家公司”只能说明参考对象,不能证明持有人就是这家公司的股东。 理解代币化股票,最重要的不是先看它部署在哪条链上,而是先问:代币究竟代表什么权利?有些代币直接参与股票持有人登记,有些代表由第三方托管的股票权益,还有些只让代币价
2026年11月9日
token-standard

什么是代币标准?

代币标准是一套技术规范,规定代币程序应提供哪些功能、接受什么输入,以及怎样把结果告诉钱包和其他应用。它让不同开发者创建的代币可以用一组共同规则被识别和调用。 可以把标准理解为接口约定:它规定“对外怎样沟通”,但不替每个项目决定供应量、用途、管理权限或链外权利。两个代币可以遵循同一标准,却采用不同代码、拥有不同权限,并代表完全不同的对象。 ## 没有共同标准会发生什么 如果每个代币都自行命名查询余额
2026年11月9日
USDC-DAI-USDT Price: Everything You Need to Know About Stablecoins

什么是稳定币?

稳定币是一类试图让价格接近某个参考价值的加密资产,常见参考对象是美元等法定货币。“稳定”说的是设计目标,并不是价格保证。稳定币仍可能高于或低于目标价格交易,不同持有人也不一定都能直接向发行方赎回。 理解稳定币时,可以把四个问题分开:参考价值是什么?由什么机制支持?谁可以直接赎回?特定市场上实际可得的价格是多少?某项说明回答了其中一个问题,不代表其他问题也得到回答。 ## 目标价值不等于市场价格 *
2026年11月9日
smart-contract

什么是智能合约?

智能合约是部署在区块链网络上、由交易或其他程序调用后按代码规则运行的程序。它可以读取输入和链上数据,检查预设条件,并在执行成功后更新区块链保存的数据。 “智能”不表示它会自行思考,“合约”也不保证它在法律上构成合同。这个名称强调的是:参与者可以把一组操作规则写成代码,由运行区块链软件并检查交易的节点按协议处理,而不必由某一台服务器单独决定结果。 ## 先分清代码、状态和调用 **代码**规定程序可
2026年11月9日
查看更多