5種類のパスフレーズ暗号から選び、テキストを貼り付けて「暗号化」を押すと暗号文が得られます。CryptoJS の暗号文を貼り付けて「復号」を押せば元のテキストに戻ります。出力は OpenSSL 形式のソルト付きコンテナで、入力が外部に送信されることはありません。
ブラウザ内でローカルに実行対称暗号の暗号化と復号を1画面で行えます。パスフレーズを使う AES・DES・RC4・Rabbit・TripleDES の5種類からアルゴリズムを選び、テキストを貼り付けて「暗号化」を押すと結果が下に表示されます。同じパスフレーズでその結果を貼り付けて「復号」を押せば元のテキストに戻ります。
暗号処理はページ内の CryptoJS で実行されます。テキストとパスフレーズはブラウザの外に出ないため、ネットワークが切れていても動作します。
結果はすべて OpenSSL 形式のコンテナです。8バイトの Salted__(Base64 では U2FsdGVkX1)、8バイトのランダムなソルト、その後に暗号文が続きます。鍵と IV はパスフレーズとソルトから MD5 ベースの EVP_BytesToKey で導出され、これは openssl enc が -md md5 で使う導出と同じです。
ソルトがランダムなので、同じテキストと同じパスフレーズでも毎回異なる文字列になります。同じ出力が出たら不具合で、異なるのが正常です。
AES は aes-256-cbc、DES は des-cbc、TripleDES は des-ede3-cbc です。この3つは OpenSSL で復号できます(例:openssl enc -d -aes-256-cbc -md md5 -k "パスフレーズ")。RC4 は256ビット鍵で、openssl enc -rc4 が既定で導出する128ビットの倍なので、このコマンドでは読み戻せません。Rabbit は CryptoJS にしかなく、OpenSSL に対応する実装はありません。
AES・DES・TripleDES は PKCS#7 パディングを使う CBC モードのブロック暗号、RC4 と Rabbit はストリーム暗号なので、暗号文の長さは元のテキストと同じです。
AES・DES・TripleDES はパディング検査で失敗し、何も返しません。RC4 と Rabbit は有効な UTF-8 になることのほとんどないバイト列を返します。どちらの場合も、以前の平文を画面に残さず、失敗を表示して出力欄を空にします。
このコンテナには完全性の検査がありません(MAC も認証タグもありません)。そのため改変された暗号文は検出できず、誤ったパスフレーズと壊れたデータを区別できません。自動処理に復号結果を渡す前に、既知の小さなサンプルで照合してください。
扱えるのはテキストだけで、ファイルは対象外です。署名・検証・保存も行いません。履歴も鍵の保管もなく、再読み込みで結果は消えます。
DES・RC4・TripleDES は既存データとの互換性のために残しています。パスフレーズから導出した鍵による CBC モードは現代的な構成ではありません。新しい用途には AES-GCM や ChaCha20-Poly1305 を使ってください。このページではそれらは生成できません。