47

パスワードなどの文字列を SHA-256 でハッシュする場合、ハッシュする文字列の長さに制限はありますか? たとえば、64 文字未満の文字列をハッシュすることだけが「安全」ですか?

4

3 に答える 3

75

技術的には限界がありますが、かなり大きいです。SHA-256 に使用されるパディング スキームでは、入力のサイズ (ビット単位) を 64 ビットの数値で表す必要があります。したがって、最大サイズは (2 64 -1)/8 バイト ~= 2'091'752 テラバイトです。

これにより、制限はほぼ完全に理論的なものになり、実用的ではなくなります。

とにかく、ほとんどの人はそれほど多くのデータのストレージを持っていませんが、たとえ持っていたとしても、すべてを連続して処理して単一のハッシュを生成するには、ほとんどの人が法外と考えるほどの時間がかかります.

封筒の裏にある簡単な計算では、Tom のハードウェアに現在1記載されている最速のエンタープライズ SSD を使用し、それらを 16 幅にストライピングして帯域幅を改善したとしても、その量のデータを読み取るだけでも約 220 年かかることを示しています。


1. 2016 年 4 月現在。

于 2013-06-30T07:36:59.930 に答える
7

2 64 -1 ビットの最大メッセージ サイズ以外に、そのような制限はありません。SHA2 は、実行可能ファイルのハッシュを生成するために頻繁に使用されます。実行可能ファイルは、数十バイトよりもはるかに大きくなる傾向があります。

于 2013-06-30T07:35:51.227 に答える