sha256输入有限制吗?

时间:2013-06-30 07:30:03

标签: hash sha256

使用sha256对字符串进行散列(如密码)时,我正在散列的字符串长度是否有限制?例如,对#l = 64个字符的字符串进行散列是否“安全”?

3 个答案:

答案 0 :(得分:49)

技术上存在限制,但它非常大。用于SHA-256的填充方案要求输入的大小(以位为单位)表示为64位数。因此,最大尺寸为(2 64 -1)/ 8字节〜= 2'091'752太字节。

这使得几乎的限制完全是理论上的,而不是实际的。

大多数人无论如何都没有几乎那么多数据的存储空间,但即使他们这样做,连续处理它以生成单个散列也需要花费大量时间来考虑禁止。

一种快速的信封式计算表明,即使在Tom的硬件上列出了当前 1 的最快的企业级SSD,并将它们剥离16宽以提高带宽,只需读取该数量数据仍需要大约220年。


1.截至2016年4月。 功能

答案 1 :(得分:5)

除了2 64 -1位的最大消息大小之外,没有这样的限制。 SHA2经常用于生成可执行文件的哈希值,这些哈希值往往比几十个字节大得多。

答案 2 :(得分:1)

上限在NIST标准FIPS 180-4中给出。上限的原因是填充方案。邮件长度l最后在填充过程中附加到邮件中。

  

然后附加等于表示的数字l的64位块   使用二进制表示形式

因此,按照NIST标准,SHA-256可以哈希的最大文件大小为2 ^ 64。