哈希生成器

从任何文本生成 MD5、SHA-1、SHA-256、SHA-384 和 SHA-512 哈希。使用原生 Web Crypto API。100% 客户端运行,无需上传,无跟踪。

广告
广告

生成哈希,不上传您的数据

一键生成 MD5、SHA-1、SHA-256、SHA-384 和 SHA-512——就在您的浏览器中。无需上传,无需注册,无限制。

100% 私密
原生 Web Crypto API
永久免费

使用步骤

  1. 1

    输入文本

    在输入框中输入或粘贴要哈希的文本。工具支持 UTF-8,因此国际字符和表情符号可正确工作。

  2. 2

    点击计算

    点击“计算哈希”一次生成所有五种哈希(MD5、SHA-1、SHA-256、SHA-384、SHA-512)。

  3. 3

    复制

    使用每个哈希旁边的复制按钮将其复制到剪贴板。切换大写/小写开关以匹配您系统期望的格式。

为什么使用此哈希生成器?

一键五种算法,由原生 Web Crypto API 驱动。

一键五种算法

同时生成 MD5、SHA-1、SHA-256、SHA-384 和 SHA-512 哈希,方便比较或选择系统所需的算法。

原生 Web Crypto API

SHA 哈希使用浏览器内置的 `crypto.subtle.digest` 计算,由浏览器供应商审计并硬件加速。

大写切换

一键切换小写和大写十六进制输出,以匹配您工具链期望的格式。

UTF-8 安全

正确哈希包含国际字符、表情符号和其他非 ASCII 字符的文本。

100% 私密

所有哈希在浏览器中完成。您的输入文本永远不会被上传、存储或记录。

免费且无限制

无需注册、无需 API 密钥、无每日配额。对个人和商业用途永久免费。

广告

了解加密哈希

什么是加密哈希函数?

加密哈希函数是一种数学算法,接受任意大小的输入并产生固定大小的输出,称为哈希(或摘要)。相同输入始终产生相同哈希,但即使对输入做微小改变也会产生完全不同的哈希。例如,'hello' 的 SHA-256 哈希是 '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824',而 'Hello'(大写 H)的 SHA-256 哈希是 '185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969'。

好的加密哈希函数有四个关键特性:(1) 确定性——相同输入始终产生相同哈希。(2) 快速——计算哈希很快。(3) 雪崩效应——输入的微小变化产生完全不同的哈希。(4) 抗碰撞——找到两个产生相同哈希的不同输入在计算上不可行。SHA-256 和 SHA-512 满足所有四个特性;MD5 和 SHA-1 不满足(它们不抗碰撞)。

广告

MD5 和 SHA-1 已被破解

MD5 在 2008 年被破解,研究人员演示了实际碰撞攻击——他们创建了两个具有相同 MD5 哈希的不同可执行文件。SHA-1 在 2017 年被破解,Google 和 CWI Amsterdam 宣布了 SHAttered 攻击,产生了两个具有相同 SHA-1 哈希的不同 PDF 文件。两种算法都应被视为加密已破解,不应用于任何安全敏感目的。

但是,MD5 和 SHA-1 仍在遗留系统中用于校验和验证(攻击者没有创建碰撞的动机)。Git 使用 SHA-1 进行内容寻址,尽管正在过渡到 SHA-256。我们的工具包含 MD5 和 SHA-1 用于这些遗留用例,但我们明确推荐 SHA-256 或 SHA-512 用于任何新应用。

哈希 vs 加密 vs 编码

哈希是单向的:无法从哈希恢复输入。用于完整性检查和密码存储。加密是带密钥的双向:可以将密文解密回原始内容。用于机密性。编码(如 Base64)是不带密钥的双向:任何人都可以解码。用于数据兼容性,而非安全。

广告

常见用例

哈希生成器不可或缺的真实场景。

数据完整性检查

通过将文件或消息的哈希与已知良好值进行比较来验证其是否被篡改。

Git 风格内容寻址

生成 SHA-1 或 SHA-256 哈希来唯一标识内容,类似于 Git 存储对象的方式。

遗留系统集成

一些较旧的 API 和协议仍需要 MD5 或 SHA-1 哈希;此工具无需安装额外软件即可提供。

学习与调试

在学习密码学或调试哈希不匹配时,快速检查已知输入的哈希。

与其他哈希生成器相比如何?

热门哈希生成工具的并排对比。

功能NovaToolsEMOCode浏览器控制台
隐私(无上传)100% 本地上传到服务器本地
MD5 + SHA 系列全部 5 种仅 SHA(无 MD5)
原生 Web Crypto API未知
大写切换手动
UTF-8 支持手动
移动端友好有限
离线可用页面加载后

大多数在线哈希生成器将您的文本上传到服务器。我们的工具使用浏览器原生 Web Crypto API——您的输入永远不会离开设备。

哈希算法快速参考

常见哈希算法的关键信息。

算法概览

MD5

128 位输出。已破解——请勿用于安全。仅限遗留校验和。

示例:d41d8cd98f00b204e9800998ecf8427e
SHA-1

160 位输出。2017 年起已破解。被 Git 使用(正过渡到 SHA-256)。

示例:da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA-256

256 位输出。安全。推荐用于新应用。

示例:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA-384

384 位输出。安全。需要 384 位输出时使用。

示例:38b060a751...fbd51ad2f1... (96 字符)
SHA-512

512 位输出。安全。在 64 位 CPU 上比 SHA-256 更快。

示例:cf83e1357eef...7da3e (128 字符)

输出大小

MD5

16 字节 → 32 个十六进制字符。

示例:098f6bcd4621d373cade4e832627b4f6
SHA-1

20 字节 → 40 个十六进制字符。

示例:a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
SHA-256

32 字节 → 64 个十六进制字符。

示例:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
SHA-512

64 字节 → 128 个十六进制字符。

示例:ee26b0dd4af7...28a8ff (128 字符, test 的哈希)

用例

完整性检查

SHA-256 或 SHA-512。传输前后比较哈希。

示例:sha256sum file.zip
密码存储

使用 bcrypt、scrypt 或 Argon2——不要用普通 SHA。

示例:bcrypt(password, cost=12)
内容寻址

SHA-256 (Git) 或 SHA-512 (IPFS)。

示例:git: SHA-1 of blob
遗留校验和

MD5 或 SHA-1,仅用于向后兼容。

示例:md5sum legacy.tar.gz

常见问题

支持哪些哈希算法?
MD5、SHA-1、SHA-256、SHA-384 和 SHA-512。SHA-256 和 SHA-512 是任何安全相关用途的推荐选择。MD5 和 SHA-1 仅出于遗留兼容性提供——它们不应用于新的安全应用。SHA-2 系列(SHA-256、SHA-384、SHA-512)被认为是安全的,被 TLS、Bitcoin、Git 和大多数现代安全系统使用。SHA-3 是较新的标准但部署较少。
MD5 还安全吗?
不安全。MD5 已被密码学破解,绝不应用于密码存储、数字签名或任何安全敏感目的。研究人员在 2008 年演示了对 MD5 的实际碰撞攻击,即可以创建两个不同的输入产生相同的 MD5 哈希。MD5 包含在此工具中仅用于遗留系统的校验和验证和教育目的。对于任何新应用,请使用 SHA-256 或更强算法。
SHA 哈希如何计算?
SHA-1、SHA-256、SHA-384 和 SHA-512 使用浏览器原生 Web Crypto API(`crypto.subtle.digest`)计算,既快速又加密安全。Web Crypto API 由浏览器供应商以原生代码实现,与 TLS、证书验证和其他安全关键操作使用相同的 API。MD5 不被 Web Crypto API 支持(因为它不安全),因此使用纯 JavaScript 实现计算。
可以对文件进行哈希吗?
此工具仅对文本进行哈希。输入在哈希前进行 UTF-8 编码,因此可正确处理国际字符和表情符号。要对文件(图片、文档、可执行文件)进行哈希,需要将文件读取为 ArrayBuffer 并将原始字节传递给哈希函数。如果需要验证文件完整性,请使用 `shasum`(macOS/Linux)或 `Get-FileHash`(Windows PowerShell)等命令行工具。
哈希和加密有什么区别?
哈希是单向的——无法从哈希恢复原始文本。相同输入始终产生相同哈希,但无法逆转过程。哈希用于完整性检查、密码存储(加盐)和数字签名。加密是双向的——密文可以使用密钥解密回原始文本。加密用于机密性。需要验证数据完整性或安全存储密码时使用哈希;需要保护必须可恢复的数据时使用加密。
什么是哈希碰撞?
哈希碰撞是指两个不同的输入产生相同的哈希输出。由于鸽巢原理,对于任何哈希函数,碰撞在数学上是不可避免的(因为可能的输入无限多但哈希输出数量有限)。但是,对于安全哈希函数如 SHA-256,找到碰撞需要天文数字级别的计算量(SHA-256 约需 2^128 次操作)。对于已破解的哈希函数如 MD5,碰撞可在现代计算机上几秒内找到。
应该用哈希存储密码吗?
应该,但不要使用普通哈希函数。密码应使用专门的密码哈希算法如 bcrypt、scrypt、Argon2 或 PBKDF2 进行哈希。这些算法刻意缓慢(以抵抗暴力攻击)并使用盐值(以抵抗彩虹表攻击)。普通 SHA-256 对密码存储来说太快——拥有现代 GPU 的攻击者每秒可尝试数十亿次 SHA-256 哈希。bcrypt 和 Argon2 设计为缓慢,使暴力攻击不切实际。
SHA-256 和 SHA-512 有什么区别?
SHA-256 产生 256 位(32 字节,64 字符十六进制)哈希,而 SHA-512 产生 512 位(64 字节,128 字符十六进制)哈希。SHA-512 在任何实际意义上并不'更安全'——两者在抗碰撞攻击方面具有相同的理论安全级别。SHA-512 在 64 位处理器上实际上比 SHA-256 更快,因为它以 64 位块处理数据。根据系统需求选择:SHA-256 用于较短输出,SHA-512 用于 64 位优化性能。
此工具对敏感数据安全吗?
安全。所有哈希使用 Web Crypto API 在浏览器中本地完成。您的输入文本永远不会被上传、存储或记录。您可以通过检查浏览器的开发者工具 Network 面板来验证——哈希文本时不会发出任何网络请求。这使得该工具可以安全地对 API 密钥、令牌和其他敏感数据进行哈希。
可以将此工具用于商业项目吗?
可以。本工具对个人和商业用途均免费,无水印、无需署名、无使用限制。您保留对数据的完全所有权。无需注册、无需 API 密钥、无需订阅。

100% 客户端 & 私密

所有哈希使用 Web Crypto API 在您的浏览器中完成。

  • 您的输入文本永远不会被上传、存储或记录。
  • 所有哈希计算在本地执行——输入文本或计算哈希时不会发出任何网络请求。
  • 这使得该工具可以安全地对 API 密钥、令牌、密码和其他敏感数据进行哈希。

您可以完全放心地使用,即使在隔离网络上。

你可能还喜欢

相关指南

广告