Skip to content

sha256

SHA256 是一种 安全哈希算法(Secure Hash Algorithm),属于 SHA-2 家族,由美国国家安全局(NSA)设计, 目前广泛用于密码学、区块链、数字签名、文件完整性验证等场景。


🔍 一句话解释

SHA256 会把任意长度的数据(比如一个文件、一段文本),变换成一个固定长度的 256 位(64 个十六进制字符)哈希值。

这个哈希值可以被看作是数据的指纹。即使原始内容只改动一个字符,生成的哈希值也会完全不同。


📦 SHA256 特性

特性描述
输出长度固定 256 位(二进制),等于 64 位十六进制字符串
输入长度任意长度(可以是 1 字节也可以是 1GB)
不可逆性不能通过哈希值反推出原始数据
雪崩效应输入稍有改动,输出将完全不同
抗碰撞性很难找到两个不同的输入使它们哈希值一样
算法分类SHA-2 系列的一种(还有 SHA224, SHA384, SHA512 等)
安全性目前被广泛认为是安全的,无有效攻击方法

🔐 常见应用场景

场景应用方式
文件完整性校验下载 .sha256 文件,验证文件是否被篡改
数字签名 / GPG 签名加密签名用 SHA256 对原始数据进行摘要
区块链比特币区块哈希使用 SHA256
SSL证书证书签名算法通常使用 SHA256
密码存储(配合加盐)SHA256(password + salt)(不推荐单独使用)

🧪 示例:哈希演示

验证哈希

shell
sha256sum -c gitea-1.22.0-linux-amd64.sha256

--check:检查模式,表示去验证某个哈希校验文件中列出的文件和其哈希值是否匹配。


🔧 与其他哈希算法对比

算法输出长度安全性推荐使用
MD5128 位❌ 不安全
SHA1160 位⚠️ 不推荐
SHA256256 位✅ 安全✅ 推荐
SHA512512 位✅ 更安全✅(大数据量)

🧩 SHA256 不是加密算法!

  • 它是 单向哈希算法,不能“还原”数据。
  • 如果你要对数据保密,请使用对称加密(如 AES)或非对称加密(如 RSA)。
  • 如果你要验证数据完整性或签名,SHA256 是非常合适的工具。