MD5 ハッシュを生成

入力するか貼り付けると、MD5 が打つそばから出てきます。先に言っておくべきことがあります。MD5 はセキュリティに関わるすべてにおいて壊れており、それでも偶発的な破損に対するチェックサムやキャッシュキーとしては妥当なままです。このページが計算するのは、必要とする正当な理由が存在するからで、どれがそうでないかも説明します。

結果

入力すると、ここに答えが出ます。

  • 処理される場所

    ファイルがないので、何もアップロードされません。計算はこのページの中で行われます。

  • 順番待ちもアカウントもなし

    お使いの機械の速さで答え、あなたが誰かを尋ねることはありません。

  • 何度でも

    回数は数えず、上限もありません。もう一度答えることに費用はかからないからです。

仕組み

  1. テキストを欄に貼り付けてください。
  2. 16 進 32 文字をコピーします。
  3. 何も送信されていません。計算はページの中で行われます。

「壊れている」の正確な意味

壊れているとは、同じハッシュを持つ 2 つの異なる入力を作れるという意味です。理論上ではなく、ノートパソコンで数秒です。これは、内容が変わっていないと主張するためにハッシュを使うあらゆる用途を破壊します。署名、証明書、原本を操作できる相手に対する完全性の検証。

ハッシュが逆算できるという意味ではありません。値からテキストを復元する実用的な方法はいまもなく、だから MD5 には誠実な用途が残っています。偶発的な破損の検出です。そこには敵対者がいません。コピーの途中で壊れたファイルは、自分のハッシュを選べません。

パスワードに使えない理由

まさに得意なことのせいです。非常に速い。ありふれたグラフィックカードは MD5 に対して 1 秒間に数十億の候補を試します。MD5 でハッシュ化したパスワードの表は数時間で破られ、よくあるものなら数秒です。

ソルトを足しても、事前計算された表には効きますが速度には効きません。パスワードには、遅くメモリを食うように設計されたアルゴリズム——bcrypt、scrypt、Argon2——が要ります。遅さは副作用ではなく目的です。ユーザー表のためにこのページを見ているのなら、答えは別の場所にあります。

いまも通用する用途

キャッシュキーとしては適切です。同じ入力が同じ値になり、異なる入力がほぼ衝突しないことが必要で、どちらも満たします。パスワードには不適格とされる速さが、ここでは利点になります。

それを要求する古い連携や、20 年前から MD5 を公開しているプロジェクトのダウンロード検証にも現れ続けています。後者が守るのは、切り詰められたファイルを配ったミラーに対してであって、悪意あるミラーに対してではありません。その区別が明示されることはほとんどありません。

32 文字、1 文字も違わず

MD5 は 128 ビットで、16 進 32 桁として書かれます。入力が 1 文字でも本 1 冊でも常に同じ長さです。ハッシュは定義上、固定の長さに要約するからです。

ここから手早く役に立つ検査が出ます。誰かが MD5 と呼んでいる値が 32 文字でなければ、それは MD5 ではありません。40 文字なら SHA-1、64 文字なら SHA-256 です。特に古い資料では、見た目より頻繁に起きるラベルの誤りです。

ファイル末尾の改行

ほとんどのエディターと Unix の道具は、ファイルの末尾に改行を書きます。POSIX がテキストの行を「改行で終わるもの」と定義しているからです。ブラウザーのテキスト欄はそうしません。だから単語ひとつだけのファイルの MD5 は、ここに書いた同じ単語の MD5 と一致しません。

「同じ内容」の 2 つのハッシュが合わない 2 番目に多い原因で、しかも厄介です。どちらの側も明らかに正しく見えるからです。`md5sum` と突き合わせる人は、その 1 バイトを勘定に入れるか、内容ではなくファイルを相手にする必要があります。

文字コードが変われば結果も変わります

ハッシュはバイト列に対して計算され、ここではテキストを UTF-8 でバイト列にします。「あ」は `e3 81 82` の 3 バイト、漢字も 3 バイトです。日本語のテキストは文字数よりずっと多いバイト数を持ち、ハッシュはその具体的なバイト列を反映します。

同じ見た目のテキストに別のツールが別の値を返すなら、まず文字コードを見てください。Shift_JIS なら「あ」は `82 a0` の 2 バイト、EUC-JP なら `a4 a2` でした。どちらのプログラムも間違っていません。別のテキストをハッシュしていて、食い違いはハッシュの 1 段下に住んでいます。

ファイルではなくテキストである理由

このサイトには、チェックサムを計算する別のページがあり、そちらはファイルを受け取ります。意図的に分けているのは、答える問いが違うからです。あちらは「このダウンロードは無事に届いたか」に答え、こちらは「この値のハッシュは何か」に答えます。

1 つにまとめれば、文字列を書きたい人の前にドロップ領域を、ファイルを持っている人の前にテキスト欄を置くことになり、双方にとって画面の半分が余ります。アルゴリズムは同じで、問いが同じではありません。

個人情報保護法から見たときの位置

この種の欄に貼り付けられるのは、たいてい動かすべきでない値です。調査中の行のデータ、突き合わせたいパスワードの候補、識別子。計算はページの中で行われるので、そのいずれも当方へ提供されません。

あわせて覚えておく価値があります。取りうる入力の集合が小さければ、個人データのハッシュは実務上まだ個人データです。メールアドレスの MD5 は、メールアドレスを試すことで破られます。ハッシュ化は匿名化ではなく、直接の読み取りを面倒にするだけで、法の下では仮名加工にすら届きません。

MD5 のキャッシュキーとは実際に何なのか

キャッシュキーに必要な性質は 2 つです。同じ入力が同じ値になること、異なる入力がほぼ衝突しないこと。MD5 はどちらも満たし、パスワードに使えない理由である速さが、ここではちょうど適しています。

攻撃対象になるのは、2 つの異なるリクエストを同じキーに落とすことで誰かが得をする場合だけです。たとえば他人のキャッシュ済みレスポンスを受け取るために。キーがユーザーの送る値から組み立てられ、キャッシュがセッションをまたいで共有される場所では考える価値があります。内部のパラメーターから作られる場所ではありません。

MD5 ハッシュを生成:よくある質問

MD5 は元に戻せますか。

直接には戻せません。関数は可逆ではありません。実際に行われるのは候補を猛烈な速さで試すことで、だからありふれたパスワードの MD5 は公開された表であらかじめ解かれています。

パスワードの保存に使えますか。

いいえ。速すぎます。グラフィックカードが 1 秒に数十億の候補を試します。パスワードには bcrypt、scrypt、Argon2 が必要で、その遅さは欠点ではなく目的です。

md5sum の結果と一致しないのはなぜですか。

ほとんどの場合、Unix の道具がファイル末尾に書く改行のせいです。テキスト欄にはそれがありません。その 1 バイトでハッシュ全体が変わります。次に多いのは文字コードの違いです。

ダウンロードの確認にはまだ使えますか。

偶発的な破損に対してなら使えます。切り詰められたファイルは自分のハッシュを選べません。ファイルと公開されたチェックサムの両方を操作できる相手に対しては使えません。それには SHA-256 が必要です。

テキストは端末から出ますか。

いいえ。計算はこのページの中で行われます。あわせて、取りうる値の集合が小さければ、個人データのハッシュはその個人データまでたどれることも覚えておいてください。

他のツール