Md5をハッシュできる文字列の最大長は?または:制限がない場合、およびその場合、md5出力値の最大長は何になりますか?
MD5は、任意の長さのメッセージを処理して、通常32ビットの16進数のシーケンスとして表される128ビットの固定長出力に変換します。
長さは任意ですが、文字列の入力が長すぎる場合は、コンピューターでメモリの問題が発生する可能性があります。出力は常に32文字です。
このアルゴリズムは、任意の入力長をサポートするように設計されています。つまり、DVDのISOのような大きなファイルのハッシュを計算できます...
入力に制限がある場合、ハッシュ関数が使用されている環境から入力される可能性があります。ファイルを計算したいが、環境にMAX_FILEの制限があるとします。
ただし、出力文字列は常に同じです:32 hex chars(128 bits)!
128ビットMD5ハッシュは、32桁の16進数のシーケンスとして表されます。
MD5は壊れていると見なされるため、 MD5 の代わりに SHA-1 を使用できます。
このウィキペディアの記事 でMD5の脆弱性について詳しく読むことができます。
私が知っているmd5の入力に制限はありません。一部の実装では、入力全体をmd5関数に渡す前にメモリにロードする必要があります(つまり、実装はストリームではなくメモリブロックで動作します)が、これはアルゴリズム自体の制限ではありません。出力は常に128ビットです。 md5は暗号化アルゴリズムではなく、暗号化ハッシュであることに注意してください。つまり、これを使用してデータのチャンクの整合性を検証できますが、ハッシュを元に戻すことはできません。また、md5は破損していると見なされるため、セキュリティ関連のものには使用しないでください(ダウンロードしたファイルなどの整合性を検証しても問題ありません)。