密码学哈希计算与文件校验和工具
API 即将上线在浏览器中即时计算文本与本地大文件的 SHA-256、SHA-512、SHA-384、SHA-1、MD5 及 HMAC 签名。基于 Web Crypto 原生加速,零网络上传。
Cryptographic Hash Generator & File Checksum
Instant Scenario Presets
Calculated HashesClick copy button to copy hex digest
SHA-256(256-bit)Standard
—SHA-512(512-bit)High-Security
—SHA-384(384-bit)High-Security
—SHA-1(160-bit)Legacy
—MD5(128-bit)Broken
—API 版本即将上线
Hash Generator API 上线时通知你。
关于
本密码学哈希计算与文件校验和套件依托浏览器底层原生 Web Crypto API (SubtleCrypto) 与工业级标准算法,提供纯前端的高性能哈希摘要计算、HMAC 签名与本地大文件完整性校验。所有数据计算 100% 运行在您的本机浏览器内存中,绝不向任何第三方或云端服务器上传敏感明文或文件流。
密码学散列函数的核心原理与 FIPS 国际标准
密码学散列函数(Cryptographic Hash Function)是一种确定性的数学单向映射算法,能将任意长度的二进制输入转换为固定长度的比特串(摘要)。其必须严格满足三大密码学特征:
- 抗原像性(单向性 / One-Way Property):已知散列值 $h$,在数学计算上无法推导逆运算还原出原始输入数据 $m$。哈希是不可逆的单向摘要,而非对称解密。
- 抗第二原像性(弱抗碰撞性):已知输入 $m_1$,无法在有效算力内构造出另一个不同的输入 $m_2$ 使得二者哈希值相同。
- 强抗碰撞性(Collision Resistance):无法在可行算力内找到任意两组不同的输入 $m_1 \neq m_2$,使其产生完全相同的散列摘要。
- 雪崩效应(Avalanche Effect):原始输入只要发生 1 个比特位的微小改动,输出散列值的约 50% 比特位将发生剧烈且不可预测的变化。
主流密码学散列算法横向对比与 NIST 安全评级
| 算法名称 | 国际标准规范 | 输出摘要长度 | 理论碰撞安全强度 | NIST 安全合规状态 | 工业界核心应用场景 |
|---|---|---|---|---|---|
| SHA-256 | Secure Hash Standard (FIPS 180-4) | 256 比特 (64 字符十六进制) | > 2^128 次运算 | 推荐安全标准 (工业基石) | 比特币区块链、TLS/HTTPS 证书链、Git 安全仓库、Docker 镜像层 |
| SHA-512 | Secure Hash Standard (FIPS 180-4) | 512 比特 (128 字符十六进制) | > 2^256 次运算 | 推荐安全标准 (高强度) | 64 位 CPU 架构高性能校验、GPG 数字签名、Linux shadow 密码凭证 |
| SHA-384 | Secure Hash Standard (FIPS 180-4) | 384 比特 (96 字符十六进制) | > 2^192 次运算 | 推荐安全标准 (高合规) | NSA Suite B 军用级密码学套件、企业级 VPN 与高合规 TLS 密码套件 |
| SHA-1 | FIPS 180-1 (已废止) | 160 比特 (40 字符十六进制) | 已被破解 (约 2^63 次运算) | NIST 已于 2011 年弃用 | 历史遗留 Git 提交、旧版磁力链(禁止用于现代安全认证) |
| MD5 | RFC 1321 (严重缺陷) | 128 比特 (32 字符十六进制) | 极易碰撞 (2^16 快速碰撞) | 禁止用于任何密码安全 | 基础文件去重、非对抗性 Rsync 快速指纹(严禁用于签名与防篡改) |
| Argon2id / bcrypt | 密码哈希专用 (RFC 9106) | 可配置 / 192 比特 | 内存与算力双重硬化 | 用户密码存储强制推荐 | 专用于数据库用户密码存储(抵御 GPU / ASIC 彩虹表爆破) |
HMAC 消息认证码机制 (RFC 2104)
HMAC (Hash-based Message Authentication Code) 结合了密码学散列函数与通信双方预共享的对称密钥(Secret Key)。它不仅能验证数据在网络传输中是否被篡改(完整性),还能强有力地证明该数据确由持有私密密钥的合法发起方所创建(真实性与防伪造)。广泛应用于 GitHub Webhook、Stripe 支付回调、AWS API Signature V4 等接口鉴权协议中。
开发者后端集成示例代码
1. Node.js & TypeScript (node:crypto)
import { createHash, createHmac } from 'node:crypto';
// 计算 SHA-256 十六进制摘要
export function sha256Hex(content: string): string {
return createHash('sha256').update(content, 'utf8').digest('hex');
}
// 校验 Webhook HMAC-SHA256 签名
export function verifyWebhook(payload: string, secret: string, headerSig: string): boolean {
const computed = createHmac('sha256', secret).update(payload, 'utf8').digest('hex');
return computed === headerSig;
}
2. Python 3 (hashlib & hmac)
import hashlib, hmac
# 高性能分块读取大文件并计算 SHA-256 校验和(内存占用极低)
def calculate_file_sha256(filepath: str) -> str:
hasher = hashlib.sha256()
with open(filepath, 'rb') as f:
for chunk in iter(lambda: f.read(65536), b''):
hasher.update(chunk)
return hasher.hexdigest()
3. Go (crypto/sha256 & crypto/hmac)
package hasher
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
)
func Sha256(text string) string {
hash := sha256.Sum256([]byte(text))
return hex.EncodeToString(hash[:])
}