piapia123
ja

MD5 の逆引き

エンコード

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

MD5 ダイジェストから元の平文を推測します。⚠️ まず正直なところを:MD5 は一方向であり、「復号」というものは存在しません。世の中の「MD5 復号」サービスがしていることは本ツールと同じで、候補の平文を片端からハッシュ化し、ダイジェストが一致するものを探すだけです。したがって出てくるのは「あなたの元の文字列」ではなく、たまたま同じダイジェストになる文字列にすぎません。本ツールの範囲は、よくあるパスワード一覧、数字(最大5桁)、英小文字(最大4文字)です。それを超えると見つかりません —— 実装が悪いのではなく、この手法の限界です。本当の「復号サイト」は数百 GB のレインボーテーブルと GPU クラスタを擁しており、それはサーバー側の話です —— そしてソルト付きハッシュはどんなに大きな表でも破れません。ここではすべて端末内で実行され、調べたダイジェストがこの端末の外に出ることはありません。

機能

  • よくあるパスワード一覧(弱いパスワード統計の上位に入るもの)
  • 数字は5桁まで、英小文字は4文字までの総当たり
  • 試行した候補数を表示 —— 「見つかった/見つからない」に量的な目安を与えます
  • 見つからない場合は率直に伝え、故障ではなく正常な結果であると説明します
  • ダイジェストの長さが違う場合は直接指摘します(SHA-1 は40、SHA-256 は64)
  • すべて端末内で計算し、送信もオンライン照会も行いません

使い方

  1. 16進数32文字のダイジェストを入力欄に貼り付けます(`hash:` などの接頭辞も許容)
  2. 検索範囲を選びます —— 既定のよくあるパスワード一覧は即時です
  3. Ctrl/⌘ + Enter か「実行」を押します
  4. 一致の有無にかかわらず説明が表示されます

よくある質問

なぜ「復号」ではないのですか?
MD5 は設計上そもそも一方向だからです:任意長の入力を 128 ビットに圧縮する過程は可逆ではなく、逆関数は数学的に存在しません。いわゆる「復号」はすべて推測です —— 候補をハッシュ化して照合するだけです。したがって出てくるのは同じダイジェストを持つ何らかの文字列にすぎず、原理上は他にも無数の文字列が同じダイジェストを持ちます(実際に構成するのは困難ですが)。 これは重要です:もし自分のパスワードなら、それはどこかの漏洩に含まれていた弱いパスワードだということです。他人のものであれば、当てずっぽうとなんら変わりません。
自分のダイジェストが見つからないのはなぜですか?
ほとんどの場合、パスワードが列挙した桁数より長いか、大文字小文字や記号が混ざっているためで、どちらも本ツールの範囲外です。もう一つ知っておくべき場合があります:そのハッシュがソルト付き(`md5(password + salt)`)なら、辞書でもレインボーテーブルでも永遠に見つかりません。ソルトがダイジェストを変えるからで、これこそがソルトの目的です。ソルト付きハッシュは、ソルトを知っている人が再計算するしかありません。
「MD5 復号サイト」とは何が違いますか?
カバー範囲ははるかに劣りますが、秘匿性は逆になります。それらのサイトは数百 GB のレインボーテーブルと GPU クラスタを抱えており、はるかに多くを見つけられます —— 代償はハッシュを送信しなければならないことです(有料の場合もあります)。本ツールは端末内だけで動作し、送信も照会も行わないため、範囲は弱いパスワードまでです。どちらを選ぶかは、そのハッシュが機密かどうかで決まります:自分の弱いパスワードならどちらでも構いませんが、実アカウントに関わるものなら端末内で完結させるほうが安全です。

関連ツール