DES 復号(レガシー)

レガシーな DES の暗号文を復号。パスフレーズによる OpenSSL des-cbc の Salted__ データ、または 8 バイトの 16 進鍵と IV による生データに対応。パディングはローカルで検証します。

DES は安全ではありません。56 ビット鍵は数時間で総当たり解読できます。古いデータの読み出しにのみ使い、新しいデータの保護には使わないでください。代わりに AES を使ってください。

出力は Base64 の OpenSSL「Salted__」形式です(8 バイトのランダムなソルト+暗号文)。鍵と IV はパスフレーズとソルトから導出されるため、同じテキストでも毎回結果が変わります。同等のコマンド:

openssl enc -des-cbc -d -md md5 -a -A -provider legacy -provider default -k '…'

すべてブラウザ内で実行されます。データがアップロードされることはありません。

DES 復号とは?

単一の DES で暗号化されたデータ(古いシステムのファイルや openssl enc -des-cbc で作った値など)を復号します。パスフレーズ付きの OpenSSL Salted__ Base64 形式と、16 進の鍵と IV による生の暗号文を受け付けます。

DES 復号の使い方

  1. 暗号化時と同じ 鍵の指定方法 を選びます。U2FsdGVkX1…(「Salted__」)のデータなら パスフレーズ(OpenSSL 互換)、生の暗号文なら 生の鍵 + IV(16 進) です。
  2. パスフレーズ(と同じ 鍵導出)、または 16 進の鍵と IV を入力します。
  3. 送信側と同じ モード と パディング を設定し、暗号文(Base64 または Hex)を貼り付けます。
  4. 復号 をクリックします。出力はテキスト(UTF-8)のままにするか、平文がバイナリなら Hex に切り替えます。

例

入力
U2FsdGVkX18BAgMEBQYHCJnMd6AFlnrJQetke2YRwuM= (passphrase "secret", CBC, EVP_BytesToKey MD5)
出力
Hello, World!

openssl enc -des-cbc -md md5 -k secret -S 0102030405060708 -a で生成。

DES 復号を使うべき場面

レガシーシステムからのデータ復元や DES テストベクターの確認に使ってください。復号後は、残す価値のあるデータを AES で暗号化し直しましょう。

DES 復号の仕組み

Salted__ の入力では、バイト 8〜16 からソルトを読み取り、パスフレーズから 8 バイトの鍵と IV を再導出します(EVP_BytesToKey MD5 または PBKDF2-SHA256)。生の入力は、指定した 8 バイトの鍵と IV で復号されます。CBC と ECB では PKCS#7 パディングを検査するため、鍵が違えば明確なエラーになります。

一般的な使用例

  • DES で暗号化された古い設定ファイルやエクスポートファイルを読む
  • DES の既知解テストを検証する
  • 今も DES-CBC を使うレガシー連携をデバッグする
  • DES で暗号化された値を AES に移行する

セキュリティ注意事項

DES の 56 ビット鍵は、市販のハードウェアで数時間のうちに総当たり解読できます。このツールはレガシーデータの読み取りや再現にのみ使い、新しいデータを DES で暗号化しないでください。

よくある質問

復号が「Invalid padding」で失敗するのはなぜですか?

鍵・IV・モードが一致していないか、データが DES ではありません(同じ 8 バイトブロックの 3DES かもしれません)。鍵が 16 または 24 バイトなら Triple DES 復号ツールを試してください。

紛失した DES 鍵を総当たりで解読できますか?

いいえ。指定された鍵またはパスフレーズで復号するだけです。

同じデータを復号する OpenSSL コマンドは?

openssl enc -d -des-cbc -md md5 -a -A -provider legacy -provider default -k <passphrase> です。設定に合ったコマンドがページに表示されます。

他のカテゴリを見る