DevToolPal
日本語

AES 暗号化・復号

パスフレーズ(PBKDF2)または 16 進数の鍵で、テキストを AES-GCM / AES-CBC で暗号化・復号し、Base64 で出力します。

ローカルで処理、アップロードなし

オプション

モード
アルゴリズム
鍵
鍵長

入力

0 文字 · 0 B

出力

0 文字 · 0 B

機能

AES(Advanced Encryption Standard)は、HTTPS、ディスク暗号化、パスワードマネージャー、メッセージアプリなど、ほぼあらゆる場所で使われる共通鍵暗号です。同じ秘密鍵で暗号化と復号を行います。このツールはテキストをどこにでも貼り付けられる Base64 に暗号化し、元に戻すこともできます。

使える鍵は次の 2 種類です:

  • パスフレーズ:PBKDF2-HMAC-SHA256 とランダムなソルトで 128 ビットまたは 256 ビットの鍵に変換します。
  • 16 進数の鍵:32 桁または 64 桁の 16 進数(128 / 256 ビット)をそのまま使います。ランダムな鍵で作成できます。

動作モードは 2 つです。AES-GCM は改ざんを検出できる現代の標準です。AES-CBC(PKCS#7 パディング)は古いシステムとの互換性のために用意しています。

使い方

  1. 暗号化か復号、アルゴリズム、鍵の種類を選びます。
  2. 入力欄の上部にパスフレーズを入力するか、16 進数の鍵を貼り付けます。
  3. テキスト(または復号する Base64)を貼り付けると、右側に結果が表示されます。入力に使うで方向を切り替えて往復を確認できます。

出力形式

メールやチャットでも崩れないよう、出力は 1 つの Base64 文字列です:

passphrase:  salt (16 bytes) | IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
hex key:     IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)

復号には、暗号化時と同じアルゴリズム、鍵の種類、鍵長、反復回数を使ってください。これらの設定はページのアドレスに保存されるので、共有リンクには設定だけが含まれ、鍵は手元に残ります。

パスフレーズの選び方

PBKDF2 は推測を遅くしますが、短いパスフレーズやありがちなパスフレーズは守れません。パスワード生成ツールなどで作った長いランダムなパスフレーズを使い、暗号文とは別の経路で共有してください。反復回数を増やすと推測は難しくなり、復号は少し遅くなります。10 万〜60 万回が一般的です。

よくある質問

› GCM と CBC のどちらを選ぶべきですか?

他のシステムが CBC を求めない限り GCM を選んでください。GCM は認証付きなので、鍵の誤りや 1 バイトの改ざんも検出され、壊れた出力にはなりません。CBC は機密性だけを提供し、主に古いコードとの互換性のために使います。

› 暗号文が毎回違うのはなぜですか?

暗号化のたびに新しいランダムな IV を使い、パスフレーズの場合は新しいランダムなソルトも使います。どちらも出力の先頭に保存されるので、復号は問題なくできます。同じ鍵で IV を使い回すこと(特に GCM)は深刻な弱点になります。

› 自分のコードで復号するには?

Base64 をデコードします。パスフレーズの場合、先頭 16 バイトが PBKDF2 のソルト、次が IV(GCM は 12 バイト、CBC は 16 バイト)、その後が暗号文です。同じ反復回数の PBKDF2-HMAC-SHA256 で鍵を導出します。16 進数の鍵ならソルトはありません。GCM では末尾 16 バイトが認証タグです。

› パスフレーズや鍵は保存・送信されますか?

いいえ。暗号化はブラウザ内の Web Crypto API で行われます。パスフレーズや鍵はこのページのメモリ上にだけあり、保存もアドレスバーへの書き込みも共有リンクへの追加もされないので、鍵なしで暗号文だけを共有できます。