md5をハッシュできる文字列の最大長はどれくらいですか?または:制限がない場合、および制限がある場合、md5出力値の最大長はどれくらいになりますか?
9 に答える
MD5は、任意の長さのメッセージを128ビットの固定長出力に処理します。これは通常、32桁の16進数のシーケンスとして表されます。
任意の長さにすることができますが、もちろん、文字列入力が長すぎる場合、コンピュータのメモリの問題が発生する可能性があります。出力は常に32文字です。
アルゴリズムは、任意の入力長をサポートするように設計されています。つまり、DVDのISOのような大きなファイルのハッシュを計算できます...
入力に制限がある場合は、ハッシュ関数が使用されている環境から入力されている可能性があります。ファイルを計算したいとし、環境にMAX_FILEの制限があるとします。
ただし、出力文字列は常に同じになります:32の16進文字(128ビット)!
MD5は壊れていると見なされるため、MD5の代わりにSHA-1を使用することをお勧めします。
MD5の脆弱性の詳細については、このWikipediaの記事を参照してください。
128ビットのMD5ハッシュは、32桁の16進数のシーケンスとして表されます。
私が知っているmd5の入力に制限はありません。一部の実装では、入力全体をmd5関数に渡す前にメモリにロードする必要があります(つまり、実装はストリームではなくメモリのブロックに作用します)が、これはアルゴリズム自体の制限ではありません。出力は常に128ビットです。md5は暗号化アルゴリズムではなく、暗号化ハッシュであることに注意してください。つまり、これを使用してデータのチャンクの整合性を検証できますが、ハッシュを元に戻すことはできません。また、md5は壊れていると見なされるため、セキュリティ関連の目的で使用しないでください(ダウンロードしたファイルなどの整合性を確認することは問題ありません)。
md5アルゴリズムは、メッセージの長さを最後のブロックの最後の64ビットに追加します。したがって、メッセージの長さは2 ^ 64ビット(18 e18ビット)であると言っても過言ではありません。
MD5入力の最大長:定義可能で使用可能なビットの最大ストリームビット定義制約のストリームは、オペレーティングシステム、ハードウェア制約、プログラミング言語などに依存する可能性があります...
MD5出力の長さ:固定長常に128ビット表示しやすいように、通常は16進数で表示されます。これは、各16進数が(0-1-2-3-4-5-6-7-8-9-ABCDEF)であるためです。 4ビットのスペースを占めるため、その出力は32桁の16進数で表示できます。128ビット=16バイト=32桁の16進数