ToolDeck 的哈希工具让你可以直接在浏览器中生成和识别加密哈希。可选算法包括 MD5、SHA-1、SHA-256、SHA-384、SHA-512 以及 HMAC 生成器,或使用 哈希识别工具 从任意未知哈希字符串中检测所用算法。所有计算完全在客户端使用 Web Crypto API 运行。SHA-256 是文件完整性校验和通用验证的标准选择。SHA-512 和 SHA-384 为敏感数据和子资源完整性属性提供更高的安全余量。HMAC 将任意哈希算法与共享密钥结合,为 API 签名生成消息认证码。哈希识别工具只需粘贴一次即可识别 250 多种哈希格式——所有工具完全在浏览器中运行,无需安装、无需注册,也不会向任何服务器发送数据。
什么是哈希工具?
加密哈希函数是一种单向数学变换,可将任意长度的输入数据转换为固定大小的摘要。相同的输入始终产生相同的输出(确定性),但哪怕输入改变一个字节,输出的摘要也会完全不同——这一特性称为雪崩效应。哈希函数的设计使得仅凭摘要还原原始输入在计算上不可行。
哈希工具广泛应用于软件开发的各个环节,包括数据完整性验证、密码存储、数字签名和内容去重。下载二进制文件时,SHA-256 校验和可确认文件在传输过程中未被损坏。Git 存储提交时,使用 SHA-1(正向 SHA-256 过渡)按内容标识每个对象。服务器存储密码时,使用 bcrypt 或 Argon2 等慢速、内存密集型算法——这些算法均派生自相同的哈希原语——以抵御暴力攻击。
不同算法提供不同的输出长度和安全保障。MD5 和 SHA-1 在安全领域已被密码学破解——碰撞攻击已在实践中得到验证——但仍广泛用于校验和及非安全标识符。SHA-256 和 SHA-512 来自 NIST FIPS 180-4 标准化的 SHA-2 系列,是当前安全敏感应用的基准选择。HMAC 为任意哈希函数添加密钥,实现同时证明完整性和真实性的消息认证。
为什么使用 ToolDeck 的哈希工具?
ToolDeck 的哈希工具专为需要快速、准确生成哈希而无需将数据上传至外部服务的开发者而设计。所有算法均在浏览器中使用 Web Crypto API 或纯 JavaScript 运行——输入数据永远不会离开你的设备。
🔒隐私优先的哈希生成
你的输入数据不会传输到任何服务器。所有哈希运算均在浏览器本地执行——粘贴凭据、令牌或敏感字符串无需担心数据泄露。
🌐Web Crypto API 精准实现
SHA-256、SHA-384 和 SHA-512 使用浏览器原生的 Web Crypto API——与 TLS 和操作系统级加密中使用的实现相同——而非可能与生产环境结果存在差异的 JavaScript 重新实现。
⚡七种算法,统一界面
MD5、SHA-1、SHA-256、SHA-384、SHA-512、HMAC 和哈希识别工具均通过一致的界面访问——无需在不同工具或服务之间切换。
🛡️即时结果,无使用限制
对于常规输入,哈希生成几乎是即时完成的。无速率限制、无配额、无需登录——页面加载后所有工具均可离线使用。
哈希工具使用场景
加密哈希贯穿软件开发的完整生命周期——从验证下载到签署 API 请求,再到调试 Git 内部机制。以下是这些工具最常见的省时场景。
API 安全与 HMAC 签名
在调试与 Stripe、GitHub 或 Shopify 的 Webhook 集成时,验证 HMAC-SHA256 请求签名。在本地生成预期签名并与 X-Hub-Signature-256 请求头对比,以排查认证失败问题。
文件完整性验证
为下载的二进制文件、Docker 镜像或软件包存档计算 SHA-256 校验和。与发布方公布的校验和进行比对,确认文件在传输过程中未被损坏或篡改。
密码哈希调试
测试应用程序的哈希处理流程是否产生正确的输出。生成已知输入的 SHA-256 或 MD5 摘要,以便在编写集成测试之前验证哈希逻辑。
Git 对象调试
Git 使用 SHA-1(并逐步迁移至 SHA-256)按内容标识提交、树和数据块。生成原始对象数据的 SHA-1 哈希,以理解 Git 内容寻址存储如何分配对象 ID。
子资源完整性(SRI)
为 CDN 托管的 JavaScript 和 CSS 文件生成 SHA-384 或 SHA-512 哈希,以填充 script 和 link 标签上的 integrity 属性。这可以防止受攻击的 CDN 向你的页面注入恶意代码。
安全审计与取证
使用哈希识别工具识别来自日志文件、数据库转储或捕获的网络流量中的未知哈希字符串。通过长度和字符集判断字符串是 MD5、SHA-1、SHA-256 还是其他算法。
哈希算法参考
下表涵盖 ToolDeck 上所有可用算法。输出长度是主要区分因素——哈希识别工具利用这些长度从未知哈希字符串中检测算法类型。
| 算法 | 位数 | 十六进制长度 | 系列 | 状态 | 主要用途 |
|---|
| MD5 | 128 | 32 | MD | 已破解(碰撞) | 校验和、缓存键、非安全去重 |
| SHA-1 | 160 | 40 | SHA-1 | 已弃用 | Git(历史遗留)、旧版校验和、证书链 |
| SHA-256 | 256 | 64 | SHA-2 | 安全 | 密码存储、TLS 1.3、Bitcoin、子资源完整性 |
| SHA-384 | 384 | 96 | SHA-2 | 安全 | TLS 证书、子资源完整性哈希 |
| SHA-512 | 512 | 128 | SHA-2 | 安全 | 高安全性存储、SSH 主机密钥 |
| HMAC | 可变 | 可变 | 带密钥 MAC | 安全(带密钥) | API 签名、Webhook 验证 |
已破解 = 碰撞攻击已在实践中得到验证。已弃用 = 避免用于新的安全敏感代码。安全 = 截至 2026 年无已知实际攻击。
如何选择合适的哈希工具
不同的哈希任务需要不同的算法。使用本指南将你的使用场景与正确的工具对应起来。
- 1
如果你需要 验证文件校验和、签署 API 数据或处理 TLS 证书 → SHA-256 生成器 - 2
如果你需要 以最高 SHA-2 强度生成哈希,用于高安全性存储或 SSH 密钥 → SHA-512 生成器 - 3
如果你需要 为 CDN 托管的 JavaScript 或 CSS 生成子资源完整性(SRI)哈希 → SHA-384 生成器 - 4
如果你需要 重现旧版 MD5 校验和、缓存键或非安全去重标识符 → MD5 生成器 - 5
如果你需要 为 Git 对象兼容性或旧版代码库计算 SHA-1 哈希 → SHA-1 生成器 - 6
如果你需要 验证来自 Stripe、GitHub 或 Shopify 的 HMAC-SHA256 Webhook 签名 → HMAC 生成器 - 7
如果你需要 识别生成未知哈希字符串所用的算法 → 哈希识别工具
构建新系统时,通用哈希默认使用 SHA-256,已认证的消息哈希使用 HMAC-SHA256。在任何安全敏感场景中避免使用 MD5 和 SHA-1——仅在需要向后兼容的非安全校验和场景中使用它们。
常见问题
哈希与加密有什么区别?
哈希是单向操作:哈希函数将任意输入映射为固定大小的摘要,无法从摘要还原原始输入。加密是双向的:加密数据可以用正确的密钥解密。哈希函数用于完整性验证和数字签名;加密用于数据保密。当你需要恢复原始数据时,绝对不能用哈希函数替代加密。
MD5 安全吗?
MD5 在碰撞抗性方面已被密码学破解。研究人员在 2004 年证明,两个不同的输入可以在数秒内构造出相同的 MD5 哈希。MD5 不得用于数字签名、TLS 证书或密码哈希。对于非安全用途,它仍然可以接受——用于错误检测的文件校验和、缓存键和内容去重标识符——在这些场景中攻击者无法利用碰撞。
什么是 HMAC,何时应该使用?
HMAC(基于哈希的消息认证码)将加密哈希函数与密钥相结合。它同时证明消息未被篡改(完整性)以及消息来自知道密钥的一方(真实性)。在验证来自 Stripe 或 GitHub 的 Webhook 载荷、签署 AWS API 请求(Signature Version 4)或在服务间认证消息时使用 HMAC。HMAC-SHA256 是新系统的推荐选择。
为什么相同的输入总是产生相同的哈希?
哈希函数是确定性的数学变换:给定输入通过固定算法精确映射到一个输出。这一特性使哈希适用于验证——如果你今天和明天对同一文件计算哈希后得到相同的摘要,说明文件没有改变。无论输入的原始大小如何,摘要都作为输入数据的固定大小指纹。
什么是哈希碰撞?
碰撞是指两个不同的输入产生相同的哈希输出。由于哈希函数将无限输入映射到有限输出(鸽巢原理),碰撞在理论上必然存在。安全的哈希函数使找到碰撞在计算上不可行——以当前硬件实际上是不可能的。MD5 和 SHA-1 被认为已破解,因为实际碰撞攻击已被证明:Wang 等人于 2004 年破解了 MD5,SHAttered 攻击于 2017 年破解了 SHA-1。
可以用 SHA-256 或 SHA-512 存储密码吗?
不行。SHA-256 和 SHA-512 等通用哈希函数被设计为快速运行——配备 GPU 的攻击者每秒可以计算数十亿次,使暴力破解和字典攻击变得可行。存储密码时,应使用专为此设计的算法:bcrypt、scrypt 或 Argon2id。这些算法是刻意设计成慢速且内存密集型的,专门用于在规模上抵抗暴力攻击。永远不要以明文 MD5 或 SHA 哈希形式存储密码。
SHA-256 或 SHA-512 中的数字代表什么?
该数字表示以位为单位的输出大小。SHA-256 产生 256 位摘要,表示为 64 个十六进制字符(每个十六进制字符 4 位:256 ÷ 4 = 64)。SHA-512 产生 512 位摘要(128 个十六进制字符)。更大的输出尺寸意味着可能的哈希值数量呈指数级增长——每增加一位,空间翻倍——使意外碰撞和暴力预像攻击的难度成指数级提升。
加密哈希与简单校验和有何不同?
CRC32 等校验和针对错误检测进行了优化——速度快且简单,但对蓄意篡改没有防护能力。攻击者可以构造一个与原始文件 CRC32 相同的修改版本。SHA-256 等加密哈希具有碰撞抗性和预像抗性:找到两个哈希相同的输入,或找到一个哈希到特定目标的输入,都需要不可行的计算量。在存在篡改威胁的下载验证场景中,请始终使用加密哈希,而非普通校验和。