回答:
MD5は、任意の長さのメッセージを128ビットの固定長出力に処理します。通常、32桁の16進数のシーケンスで表されます。
128 bits
= 16 bytes
=32 hex digits
追加の長さ
前のステップの結果には、bの64ビット表現(埋め込みビットが追加される前のメッセージの長さ)が追加されます。まれにbが2 ^ 64より大きい場合、bの下位64ビットのみが使用されます。
詳細はこちら。
MD5("how many characters exactly?");
任意の長さにすることができますが、もちろん、文字列の入力が長すぎると、コンピュータでメモリの問題が発生する可能性があります。出力は常に32文字です。
block
時の入力のバイトが利用可能。
MD5は壊れていると見なされるため、MD5の代わりにSHA-1を使用することをお勧めします。
MD5の脆弱性について詳しくは、このウィキペディアの記事をご覧ください。
私が知っているmd5の入力に制限はありません。一部の実装では、入力全体をmd5関数に渡す前にメモリにロードする必要があります(つまり、実装はストリームではなくメモリのブロックで動作します)が、これはアルゴリズム自体の制限ではありません。出力は常に128ビットです。md5は暗号化アルゴリズムではなく、暗号化ハッシュであることに注意してください。つまり、これを使用してデータのチャンクの整合性を検証できますが、ハッシュを元に戻すことはできません。また、md5は壊れていると見なされるため、セキュリティ関連の用途には使用しないでください(ダウンロードしたファイルの整合性などを確認しても問題ありません)。