哈希与安全

GOST 哈希生成器

立即将任意文本转换为其 64 位字符的 GOST R 34.11-94 哈希。

给这个工具评分

如何使用 GOST 哈希生成器

  1. 在输入框中键入或粘贴您的文本。
  2. 从下拉菜单中选择参数集——两种S-盒会产生不同的哈希值,请选择您的系统所要求的那一种。
  3. GOST 哈希会随着输入实时显示。点击“复制”即可获取结果。

关于 GOST 哈希生成器

GOST R 34.11-94是俄罗斯联邦标准哈希函数,生成256位输出——64个十六进制字符。“GOST”是俄罗斯标准体系的名称,该家族还包括与之配套的分组密码和签名标准,均设计为可互相配合使用。如果您正在处理俄罗斯政府系统、较旧的俄罗斯公钥基础设施,或者为符合该生态体系而构建的软件,就会遇到这种哈希算法。

实践中最需要了解的是上方的下拉菜单。GOST的设计将其S-盒——该函数核心的替换表——作为一个可变参数,而不是在规范中固定下来。因此PHP提供了两种选项:gost使用标准中公布的测试参数,而gost-crypto使用在实际俄罗斯部署中采用的CryptoPro S-盒对相同输入,这两者会产生完全不同的哈希结果。这一点经常让人困惑——如果哈希“对不上”,通常是参数集选错了,而不是出现了错误。测试参数从来就不是为生产环境设计的;如果您需要匹配真实系统的结果,几乎可以肯定应该选择CryptoPro。

在安全性方面:GOST R 34.11-94多年来一直受到公开发表的密码分析,并且在俄罗斯已被更新的GOST R 34.11-2012标准(通常称为Streebog)所取代。请将94标准视为兼容性和历史遗留工具——计算它的原因是因为其他某个系统已经要求使用它,而不是因为它适合作为新项目的选择。对于新项目,请使用SHA-256

常见问题

为什么“gost”和“gost-crypto”会得到不同的哈希值?

因为它们使用不同的S-盒。GOST标准将这些替换表作为一个参数:“gost”使用规范中公布的测试参数,而“gost-crypto”使用实际部署中所用的CryptoPro S-盒。相同的输入、相同的算法,但表不同——哈希结果也就不同。这是预期行为,而不是错误。

我应该选择哪种参数集?

如果您要匹配来自真实俄罗斯系统或公钥基础设施的哈希值,请使用CryptoPro S-盒。测试参数是为了验证实现是否正确而公布的,并非用于生产环境。

我可以解密或还原 GOST 哈希吗?

不可以。GOST是单向哈希——输入内容并未存储在输出结果中,因此无从解密或还原。

为什么我的 GOST 哈希总是 64 个字符?

GOST R 34.11-94始终输出256位,每个十六进制字符代表4位,因此无论输入长度如何,每个哈希都恰好是64个字符。

我的文本会被发送到其他地方吗?

您的文本会被发送到我们的服务器进行哈希计算,因为浏览器无法计算GOST——浏览器只提供SHA家族算法。计算完成后会立即丢弃,绝不记录,也绝不存储。