RC4暗号化・復号ツール
古いデータを、ストリーム暗号RC4で暗号化・復号します。
RC4は現在の基準では弱い暗号です。古いデータを読むために使い、新しいデータにはAESかChaCha20を使ってください。 AESへ移動
復号するときにも必要です。入力した内容がこのページの外に出ることはありません。
OpenSSLの既定値は10,000です。任意の回数を指定でき、多いほどパスワードの推測に時間がかかるようになります。復号には同じ回数が必要です。
openssl enc -rc4 -pbkdf2 -iter 10000 -a -A -provider legacy -provider defaultOpenSSLがパスワードを尋ねます。テキストを貼り付けるか、-inと-outでファイルを指定してください。
RC4(ARC4、ARCFOURとも呼ばれます)は、かつてSSL/TLSやWi-FiのWEPで使われていたストリーム暗号です。ブロックもモードもIVもなく、鍵からバイトの列(キーストリーム)を作ってテキストとXORするため、暗号文はテキストとまったく同じ長さになります。このページでは、openssl enc -pbkdf2形式のパスワードか、40〜2048ビット(初期値は128ビット)のhex鍵を使ってRC4でテキストを暗号化・復号できるので、古いシステムのデータを読んだり、古いシステム向けのデータを作ったりできます。RC4はすでに破られています。新しいデータにはAESかChaCha20を使ってください。すべてブラウザ内で動作するため、テキストも鍵も端末の外に出ることはありません。無料で登録も不要です。
RC4のテキストを復号する方法
- 「復号」を選んでBase64またはhexのテキストを貼り付けるか(形式は自動で判別されます)、「暗号化」を選んでテキストを入力します。
- パスワードを入力するか、「鍵とIV(hex)」に切り替えて鍵を入力します。RC4にはIVがないので、入力欄は鍵だけです。
- データの作成に使われた鍵長を選びます。ほかにわかっていなければ128ビット、輸出規制版のRC4なら40ビットです。
- 結果をコピーまたはダウンロードするか、「入れ替え」を押して結果を入力欄に移し、処理の向きを切り替えます。
主な機能
- 40〜2048ビットの任意の鍵長を8ビット刻みで指定でき、40・128・256・2048はワンクリック
- IVなし、パディングなし:暗号文はテキストとまったく同じ長さ
- openssl enc -pbkdf2形式のパスワード方式。OpenSSLのレガシープロバイダー用にrc4・rc4-40コマンドを表示
- 鍵だけを使う「鍵とIV(hex)」方式:鍵を入力または生成
- Base64・hexで入出力。テキストではない結果はhexで表示
プライバシーは守られますか?
はい。RC4はブラウザ内のWebAssemblyで動作します。復号するデータも、その鍵やパスワードも、アップロードや保存はされません。
よくある質問
RC4は安全ですか?
いいえ。キーストリームに統計的な偏りがあり、攻撃者がデータを復元できてしまうため、2015年にRFC 7465でTLSでの使用が禁止されました。既存のRC4データを読むためだけに使い、保管するデータはAESかChaCha20で暗号化し直してください。
ARC4はRC4と同じですか?
はい。RC4は1987年にRon Rivestが設計し、企業秘密として扱われていました。1994年にアルゴリズムが流出したあと、RC4という名前は商標なので、ほかの開発者はARC4やARCFOUR(「RC4とされるもの」の意味)という名前で実装しました。暗号文はまったく同じです。
OpenSSLで復号できますか?
128ビットと40ビットの鍵ならできます。echo 'U2FsdGVkX1…' | openssl enc -d -rc4 -pbkdf2 -iter 10000 -a -A -provider legacy -provider default を使い、40ビット鍵の場合は-rc4-40にします。「鍵とIV」方式では、-pbkdf2 -iterの代わりに-K <鍵のhex>を使い、-ivは付けません。openssl encには、それ以外の鍵長のRC4はありません。
RC4の鍵を使い回しても大丈夫ですか?
いいえ。同じ鍵からは常に同じキーストリームが作られるため、1つの鍵で作った2つの出力をXORするとキーストリームが打ち消され、2つのテキストのXORがわかってしまいます。パスワード方式ではこうはなりません。ランダムなソルトによってメッセージごとに別の鍵が使われ、出力も毎回変わるためです。「鍵とIV」方式では、メッセージごとに新しい鍵を使ってください。
エラーではなく、読めないバイト列が出てくるのはなぜですか?
RC4は鍵が正しいかどうかを判別できないためです。パスワード、反復回数、鍵長が違っていても復号結果のバイト列は出てきますが、それはランダムなもので、ページではhexで表示されます。すべての設定が暗号化時と同じか確認してください。