哈希生成器
在浏览器中即时从任意文本字符串生成 MD5、SHA-1 和 SHA-256 加密哈希值。数据不会发送到服务器。
广告
输入文本
MD5
— SHA-1
— SHA-256
— 广告
常见问题
什么是哈希函数?
哈希函数是一种确定性算法,将任意长度的输入转换为固定长度的输出,称为摘要或哈希值。相同的输入始终产生相同的哈希值,但即使输入发生微小变化(例如翻转一个位),也会产生完全不同的哈希值。这种特性称为雪崩效应,使哈希函数对于验证数据完整性非常有用:如果在传输前后对文件进行哈希计算且哈希值匹配,则文件传输完好无损。
MD5 vs SHA-1 vs SHA-256 — 我应该使用哪个?
MD5 生成 128 位(32 个十六进制字符)的摘要,速度非常快,但已被密码学破解 — 存在碰撞攻击,可以生成具有相同 MD5 哈希值的两个不同输入。不应将其用于安全目的,但仍可用于非安全校验和和指纹识别。SHA-1 生成 160 位(40 个十六进制字符)的摘要;自 2017 年 Google 证明了实际碰撞以来,它也被认为对安全关键应用程序不够安全。SHA-256 是 SHA-2 系列的一部分,生成 256 位(64 个十六进制字符)的摘要,仍然安全,广泛推荐用于密码(结合盐值)、数字签名和数据完整性验证。
这些哈希值可以反转吗?
不能。MD5、SHA-1 和 SHA-256 都是单向函数:给定一个哈希值,不存在可以重建原始输入的数学算法。这种不可逆性是基本的设计特性。攻击者可以做的是尝试彩虹表攻击(哈希→输入对的预计算表)或暴力破解所有可能的输入并进行比较。这就是为什么密码应始终使用慢速、加盐算法(如 bcrypt、scrypt 或 Argon2)进行哈希,而不是像 SHA-256 这样的快速通用哈希。