181

md5をハッシュできる文字列の最大長はどれくらいですか?または:制限がない場合、および制限がある場合、md5出力値の最大長はどれくらいになりますか?

4

9 に答える 9

262

MD5は、任意の長さのメッセージを128ビットの固定長出力に処理します。これは通常、32桁の16進数のシーケンスとして表されます。

于 2010-08-03T07:46:27.930 に答える
45
  • メッセージの長さは無制限です。

付加長さ

bの64ビット表現(パディングビットが追加される前のメッセージの長さ)は、前のステップの結果に追加されます。万が一、bが2 ^ 64より大きい場合は、bの下位64ビットのみが使用されます。

  • ハッシュは常に128ビットです。これを16進文字列としてエンコードすると、1文字あたり4ビットをエンコードして、32文字にすることができます。
  • MD5は暗号化ではありません。通常、MD5ハッシュを「復号化」して元の文字列を取得することはできません。

詳しくはこちらをご覧ください

于 2010-08-03T07:48:21.560 に答える
13

任意の長さにすることができますが、もちろん、文字列入力が長すぎる場合、コンピュータのメモリの問題が発生する可能性があります。出力は常に32文字です。

于 2010-08-03T07:47:06.813 に答える
7

アルゴリズムは、任意の入力長をサポートするように設計されています。つまり、DVDのISOのような大きなファイルのハッシュを計算できます...

入力に制限がある場合は、ハッシュ関数が使用されている環境から入力されている可能性があります。ファイルを計算したいとし、環境にMAX_FILEの制限があるとします。

ただし、出力文字列は常に同じになります:32の16進文字(128ビット)!

于 2010-08-03T07:45:20.020 に答える
5

MD5は壊れていると見なされるため、MD5の代わりにSHA-1を使用することをお勧めします。

MD5の脆弱性の詳細については、このWikipediaの記事を参照してください。

于 2010-08-03T07:58:25.670 に答える
5

128ビットのMD5ハッシュは、32桁の16進数のシーケンスとして表されます。

于 2010-08-03T07:46:59.527 に答える
3

私が知っているmd5の入力に制限はありません。一部の実装では、入力全体をmd5関数に渡す前にメモリにロードする必要があります(つまり、実装はストリームではなくメモリのブロックに作用します)が、これはアルゴリズム自体の制限ではありません。出力は常に128ビットです。md5は暗号化アルゴリズムではなく、暗号化ハッシュであることに注意してください。つまり、これを使用してデータのチャンクの整合性を検証できますが、ハッシュを元に戻すことはできません。また、md5は壊れていると見なされるため、セキュリティ関連の目的で使用しないでください(ダウンロードしたファイルなどの整合性を確認することは問題ありません)。

于 2010-08-03T07:48:14.227 に答える
1

md5アルゴリズムは、メッセージの長さを最後のブロックの最後の64ビットに追加します。したがって、メッセージの長さは2 ^ 64ビット(18 e18ビット)であると言っても過言ではありません。

于 2021-06-27T15:38:42.170 に答える
0

MD5入力の最大長:定義可能で使用可能なビットの最大ストリームビット定義制約のストリームは、オペレーティングシステム、ハードウェア制約、プログラミング言語などに依存する可能性があります...

MD5出力の長さ:固定長常に128ビット表示しやすいように、通常は16進数で表示されます。これは、各16進数が(0-1-2-3-4-5-6-7-8-9-ABCDEF)であるためです。 4ビットのスペースを占めるため、その出力は32桁の16進数で表示できます。128ビット=16バイト=32桁の16進数

于 2021-07-30T16:17:46.427 に答える