テキストから MD5 ダイジェストを生成します。チェックサム、旧形式データとの比較、文字列の簡易的な指紋として使えます。テキストを入力すると、32文字または16文字の MD5 16進ダイジェスト(大文字・小文字)を出力します。
テキストを送信すると、32文字の16進数で表した MD5 ダイジェストと、旧システムが短い識別子として使う中央16文字を返します。計算はサーバー側で行われるため、ブラウザーや端末が変わっても結果は同じです。
MD5 は暗号化ではなくチェックサムです。同じ入力からは常に同じ 128 ビットの出力が得られ、元に戻す鍵はありません。値の比較や偶発的な変化の検出には今も使えますが、意図的な攻撃に耐える必要のある用途には適しません。
MD5 は Merkle-Damgård 構造による 128 ビットのハッシュです。メッセージをパディングして 512 ビットのブロックに分割し、各ブロックを 64 ラウンドで内部状態に混ぜ込みます。出力は決定的で高速、しかも1文字変えるだけでダイジェストのビットのおよそ半分が変わるほど敏感です。
攻撃者を想定した用途では設計が破綻しています。2004 年以降の研究で実用的な衝突が作られ、2008 年には同じ MD5 値と見た目の同じ接頭辞を持つ別々の文書を作成できるようになりました。衝突とは、チェックサムが一致したままファイルやメッセージをすり替えられることを意味します。
2つのシステム間で設定値を比較する、キャッシュのキーにする、ダウンロードの偶発的なビット化けを検出する、既知のダイジェストとログ行を照合する、といった用途は妥当です。脅威が「ミス」であり、入力を選ぶ攻撃者を想定していないためです。
パスワード、証明書、第三者のソフトウェア更新の検証、そして攻撃者が入力を選ぶことで得をするあらゆる方式には使えません。パスワードにはユーザーごとのソルト付き bcrypt・scrypt・Argon2 を、署名には SHA-256 以上を、敵対的な配布元に対する完全性確認には最低でも SHA-256 を使ってください。
MD5 の完全なダイジェストは 32 文字の16進数、つまり 16 バイトです。古いアプリケーションや有名な Web アプリの一部は、固定幅の列に収めるために中央の16文字へ切り詰めており、このページが表示する短い形式はそこから来ています。
切り詰めた値は 64 ビットしかないため衝突が見つけやすく、異なる入力が同じ短い値になることもあります。旧システムが生成した値と照合する場合は、その比較に限って短い形式を使い、それ以外では完全なダイジェストを保管してください。
セキュリティ用途では安全ではありません。衝突を意図的に作れるため、デジタル署名、証明書、パスワードの保存、攻撃者が影響を与えられる比較には使えません。偶発的な破損を検出する高速なチェックサムとしては今も利用できます。
いいえ。MD5 は高速で、既定ではソルトがなく、衝突も起こりやすいため、総当たり攻撃やレインボーテーブルが安価になります。意図的に遅く設計され、ユーザーごとのソルトを持つ bcrypt・Argon2id・scrypt などのパスワードハッシュ関数を使ってください。
このページでは送信されます。ダイジェストはサーバー側で計算されるため、パスワード、秘密鍵、セッショントークン、個人情報は入力しないでください。機密性が必要な場合は md5sum や openssl dgst のようなローカルツール、またはファイルをブラウザー内で読むファイルチェックサムツールを使います。
ほとんどは文字コードの違いです。このページは入力の UTF-8 バイト列をハッシュ化しますが、他のツールは UTF-16 やローカルのコードページを使うことがあります。末尾の改行や BOM でも値はまったく変わります。なお、フォームはテキストエリアの改行を CRLF として送信するため、末尾に改行があるテキストは同じ文字列でも改行なしとは別の値になります。
ファイルチェックサムツールを使ってください。ファイルをローカルで読み取り、内容をアップロードせずにハッシュを計算します。この入力欄にファイル全体を貼り付けるのは現実的ではなく、大きなファイルでは安全でもありません。
完全性と署名には SHA-256、既存プロトコルが要求する場合に限り SHA-1、パスワードには bcrypt・scrypt・Argon2id を使ってください。速度が重要な非セキュリティ用途のチェックサムなら、xxHash や CRC-32 の方が速く適しています。