哈希 | 校验和 | 验证

> 哈希 | 校验和 | 验证 <

// 用于校验和、数据完整性验证和指纹识别的MD5哈希生成器

[安全]

本地处理

100%客户端MD5哈希处理。您的数据永远不会离开浏览器。

[快速]

即时哈希

输入时实时生成MD5哈希。无需服务器通信。

[免费]

多种格式

以十六进制或Base64格式输出。可即时切换格式。

// 关于MD5哈希

MD5工作原理:

MD5(消息摘要算法5)通过Merkle-Damgard结构的一系列位运算处理输入数据。它生成128位(16字节)的哈希值,通常表示为32个字符的十六进制字符串。

示例:

"Hello" → 8b1a9953c4611296a827abf8c47804d7

常见用途:

  • >文件完整性验证和校验和
  • >数据去重和指纹识别
  • >缓存键生成
  • >非安全相关的哈希表索引
  • >遗留系统兼容性

>> 常见问题

问:什么是MD5哈希?

答:MD5(消息摘要算法5)是一种广泛使用的哈希函数,可生成128位哈希值。它接受任何输入并生成固定大小的32个字符的十六进制字符串,通常用于校验和及数据完整性验证。

问:MD5对密码安全吗?

答:不安全,MD5不推荐用于密码哈希或安全关键型应用。它容易受到碰撞攻击和彩虹表攻击。密码请使用bcrypt、scrypt或Argon2,加密需求请使用SHA-256或SHA-3。

问:MD5哈希可以被逆向吗?

答:不可以,MD5是单向哈希函数。从数学上来说,将MD5哈希逆向还原为原始输入是不可行的。但是,常见输入可以通过查找表找到,因此MD5不适合安全用途。

问:MD5还有什么用途?

答:MD5在非安全相关用途中仍然有用,例如文件完整性检查、数据去重、缓存键生成以及不需要碰撞抗性的校验和验证。

问:MD5与SHA-256相比如何?

答:MD5生成128位哈希(32个十六进制字符),而SHA-256生成256位哈希(64个十六进制字符)。SHA-256具有加密安全性和碰撞抗性,适用于MD5不适合的安全应用。

// 常见的 MD5 值

输入MD5
""d41d8cd98f00b204e9800998ecf8427e
abc900150983cd24fb0d6963f7d28e17f72
hello5d41402abc4b2a76b9719d911017c592
The quick brown fox jumps over the lazy dog9e107d9d372bb6826bd81d3542a419d6

// 计算文件校验和

Linux        md5sum file.zip
macOS        md5 file.zip
Windows      certutil -hashfile file.zip MD5
PowerShell   Get-FileHash file.zip -Algorithm MD5
OpenSSL      openssl md5 file.zip
Python       hashlib.md5(data).hexdigest()
Node.js      crypto.createHash('md5').update(data).digest('hex')

>> 更多问题

问:如何用 MD5 校验和验证文件?

答:计算下载文件的 MD5 哈希(例如用 md5sum),与发布的值逐字符比对。一致说明文件没有意外损坏。MD5 无法防御恶意篡改,此时请使用 SHA-256 或签名。

问:为什么 MD5 输出总是 32 个十六进制字符?

答:MD5 始终输出 128 位。每个十六进制字符代表 4 位,所以正好是 32 个字符,无论输入是 1 字节还是 1 GB。

问:存储密码时应该用什么代替 MD5?

答:使用缓慢且带盐的密码哈希,如 Argon2id、bcrypt、scrypt 或 PBKDF2。它们故意计算开销大,让暴力破解代价高昂;而 MD5 这类快速哈希每秒可计算数十亿次。

// 其他语言