Toolonit
  1. ホーム
  2. 暗号化
  3. 暗号化 / 復号
  4. DES

DES暗号化・復号ツール

古いデータを、シングルDESで復号・暗号化します。

DESは現在の基準では弱い暗号です。古いデータを読むために使い、新しいデータにはAESかChaCha20を使ってください。 AESへ移動

暗号化の方式

復号するときにも必要です。入力した内容がこのページの外に出ることはありません。

PBKDF2の反復回数

OpenSSLの既定値は10,000です。任意の回数を指定でき、多いほどパスワードの推測に時間がかかるようになります。復号には同じ回数が必要です。

モード

OpenSSLで一般的な選択です。IVが必要で、ブロック単位にパディングします。

出力形式
OpenSSLで同じ処理
openssl enc -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default

OpenSSLがパスワードを尋ねます。テキストを貼り付けるか、-inと-outでファイルを指定してください。

DES(Data Encryption Standard、1977年)は、8バイトのブロックを64ビットの鍵で暗号化する方式で、鍵のうち実際に使われるのは56ビット、残りの8ビットはパリティビットです。総当たりでとうに破られていますが、古いファイルや設定、データベースには今もDESで暗号化された値が残っており、このページはそれを読み書きします。初期設定のCBCモードのほか、ECB・CFB・OFB・CTRに対応し、鍵はopenssl enc -pbkdf2形式のパスワードか、16桁のhexの鍵とIVで指定します。古いデータを取り出したら、AESで暗号化し直してください。すべてブラウザ内で動作するため、データも鍵も端末の外に出ることはありません。無料で登録も不要です。

DESで暗号化されたテキストを復号する方法

  1. 「復号」を選んでBase64またはhexのテキストを貼り付けるか(形式は自動で判別されます)、「暗号化」を選んでテキストを入力します。
  2. パスワードを入力するか、「鍵とIV(hex)」に切り替えて16桁の鍵と16桁のIVを入力します(ECBにはIVがありません)。
  3. データの作成に使われたモード(通常はCBCかECB)を選びます。PKCS#7パディングなしで暗号化されたデータの場合だけ、「パディングなし」をオンにします。
  4. 結果をコピーまたはダウンロードします。テキストではないバイト列はhexで表示されます。

主な機能

  • 64ビット鍵のシングルDES:56ビットの鍵と8ビットのパリティ
  • CBC・ECB・CFB・OFB・CTRモード、PKCS#7パディングまたはパディングなし
  • openssl enc -pbkdf2形式のパスワード方式。PBKDF2の反復回数は任意
  • 「鍵とIV」方式:16桁のhexの鍵とIVを入力または生成
  • 同じ処理をするopensslコマンドを、OpenSSL 3のレガシープロバイダー付きで表示
  • 入力のBase64・hexを自動で判別。テキストではない結果はhexで表示し、バイト列としてダウンロード可能

プライバシーは守られますか?

はい。DESはブラウザ内のWebAssemblyで動作するため、復号する古いデータも、その鍵やパスワードも、どこにもアップロード・保存されません。

よくある質問

DES暗号は安全ですか?

いいえ。56ビットの鍵は、すべての組み合わせを試せば見つかります。1998年には専用マシンで実際に解読され、今でははるかに安くできます。DESは、すでにDESで暗号化されたデータを読むためだけに使い、そのデータはAESかChaCha20で暗号化し直してください。

OpenSSLで「Error setting cipher DES-CBC」と表示されるのはなぜですか?

OpenSSL 3ではDESが、既定では読み込まれないレガシープロバイダーに移されたためです。echo 'U2FsdGVkX1…' | openssl enc -d -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default のようにプロバイダーを追加してください。ほかのモードには-des-ecb・-des-cfb・-des-ofbを使い(OpenSSLにはDESのCTRはありません)、「鍵とIV」方式では-pbkdf2 -iterの代わりに-K <16桁のhex> -iv <16桁のhex>を使います。

DESの鍵はどんな形ですか?

8バイトで、16桁のhexで表します。各バイトの最下位ビットはDESが無視するパリティビットなので、そのビットだけが違う鍵は同じように復号されます。IVも8バイトで、ECBでは使いません。パスワード方式では、どちらもパスワードから導出されるので用意する必要はありません。

DESとトリプルDESの違いは何ですか?

トリプルDESは3つの鍵でDESを3回実行する方式で(192ビットの鍵、実質の強度は約112ビット)、そのためDESより長く使われてきました。シングルDESは56ビットの鍵が1つだけで、総当たりで破られてしまいます。鍵の長さが16バイトか24バイトなら、そのデータはトリプルDESです。トリプルDESのページを使ってください。

読めないテキストが出てくるのはなぜですか?

パスワードか鍵、反復回数、モード、パディングのいずれかが暗号化時と違っているためです。CFB・OFB・CTRでは、DESは不一致を検出できずにランダムなバイト列を返し、ページではhexで表示されます。CBCとECBでは、不一致はたいていエラーになります。

関連ツール