sha256输入有限制吗?

Jac*_*son 31 hash sha256

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

Jer*_*fin 57

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

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

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

快速背的最信封类型的计算表明,即使是目前发展最快的企业固态硬盘1对汤姆的硬件上市和分拆其16宽以提高带宽,只是读数据的数量仍然需要大约220年.


1.截至2016年4月.

  • @ErkinAlpGüney:SHA-256不是分组密码(或任何其他类型的密码).这是一个哈希.当然,哈希也可以应用于大输入 - 但是大于2 ^ 64位(更不用说2 ^ 64字节)并不是大多数人需要担心的事情.那些做的人需要使用除SHA-256以外的东西(尽管根据他们的需要,他们需要改变的唯一部分可能就是填充). (2认同)

Mic*_*tta 5

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