当前位置: 首页 > ai >正文

密码学的hash函数,哈希碰撞, collision resistance, BTC用到的SHA-256简介

密码学中的哈希函数、哈希碰撞、抗碰撞性(collision resistance)以及比特币中使用的 SHA-256 的简明介绍:


🧩 一、哈希函数(Hash Function)

定义:
哈希函数是一种将任意长度的输入(消息)映射为固定长度输出(哈希值,digest)的函数。

特点:

  1. 输入可以是任意长度,输出固定长度(如256位)。
  2. 相同输入总是得到相同的输出。
  3. 不同输入得到相同输出的概率极低。
  4. 哈希过程不可逆(不能从输出推回输入)。

🎯 二、哈希碰撞(Hash Collision)

定义:
当两个不同的输入通过哈希函数得到了相同的输出时,就发生了哈希碰撞(collision)

例子:

H("hello") = 0x123456...
H("world") = 0x123456...  ← 碰撞

🛡️ 三、抗碰撞性(Collision Resistance)

定义:
一个哈希函数是“抗碰撞的”,意味着要找到两个不同的输入,使得它们哈希结果相同非常困难(计算上不可行)。

哈希函数的安全性主要包括三个方面:

  1. Preimage Resistance(单向性): 给定 H(x),难以找出 x。
  2. Second Preimage Resistance(第二原像抵抗): 给定 x1 和 H(x1),难以找出 x2 ≠ x1 使得 H(x1) = H(x2)。
  3. Collision Resistance(抗碰撞性): 难以找到任何 x1 ≠ x2,使得 H(x1) = H(x2)。

🪙 四、比特币中的 SHA-256

SHA-256: 是 Secure Hash Algorithm 2(SHA-2)系列中的一种,由 NSA 设计,输出长度为 256 位(32 字节)。

用途:

  1. 挖矿(Proof of Work)
    • 挖矿者需要找到一个 nonce,使得 SHA256(SHA256(BlockHeader)) 的结果小于某个目标值。
  2. 交易哈希(Transaction Hashing)
    • 每笔交易都会被哈希成一个唯一 ID。
  3. 区块哈希(Block Hashing)
    • 整个区块头部被双重哈希生成 block hash,用作区块标识。
  4. Merkle Tree 构建
    • 每个交易被哈希,然后两两组合再次哈希,最终得到 Merkle Root,作为区块头的一部分。
比特币挖矿核心:  
找一个 nonce,使得  
SHA256(SHA256(BlockHeader)) < Target

📌 示例:SHA-256 哈希

echo -n "hello" | openssl dgst -sha256
# 输出:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

http://www.xdnf.cn/news/1622.html

相关文章:

  • elementui日历显示红点及根据日程范围判断是否有红点
  • 实验三 进程间通信实验
  • 504 nginx解决方案
  • arm64适配系列文章-第六章-arm64环境上rabbitmq-management的部署,构建cluster-operator
  • LeetCode238_除自身以外数组的乘积
  • 2025.5.4机器学习笔记:PINN文献阅读
  • React状态提升深度解析:原理、实战与最佳实践
  • 声音分离人声和配乐-从头设计数字生命第4课——仙盟创梦IDE
  • 树莓派安装GStreamer ,opencv支持, 并在虚拟环境中使用的安装方法
  • 从数据到智慧:解密机器学习的自主学习密码
  • springboot基于hadoop的酷狗音乐爬虫大数据分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 【Python】Python在Linux上安装等操作流程以及注意事项| 基础知识
  • PTA -L1-001 Hello World
  • 项目班——0419——chrono时间库
  • VIC-3D非接触全场应变测量系统用于小尺寸测量之电子元器件篇—研索仪器DIC数字图像相关技术
  • 前端面经-JS篇(四)--回调地狱、promise异步编程、Proxy 与 Reflect 、模块化
  • JMeter 安装及使用 [软件测试工具]
  • 【数据分析实战】使用 Matplotlib 绘制玫瑰图
  • 什么是机器视觉3D碰撞检测?机器视觉3D碰撞检测是机器视觉3D智能系统中安全运行的核心技术之一
  • 使用 Docker 安装 SQL Server 2022 并解决 Navicat 连接问题
  • Linux漏洞管理:自动化扫描与补丁更新策略
  • 【软件设计师】模拟题一
  • 修改el-select背景颜色
  • wait_event 类接口详解
  • 题目:这不是字符串题
  • 数据库day-07
  • 晶振不集成到芯片内部的原因分析
  • BDO分厂开展地沟“大清肠”工作
  • Spring boot 中的IOC容器对Bean的管理
  • 【Python笔记 04】输入函数、转义字符