Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
在线执行RC4流密码的加密和解密操作,支持文本输入与密钥管理
内容を入力し、暗号化/復号ボタンをクリックしてください
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
このページでは、RC4を使ったテキストの暗号化と復号を行い、結果をBase64とHex(16進数)で確認できます。主な用途は、既存データとの互換性確認や、ストリーム暗号の学習です。新しいデータを安全に保護するための暗号方式として使うものではありません。
RC4は、鍵から疑似ランダムなバイト列(鍵ストリーム)を作り、入力データの各バイトとXOR(排他的論理和)を取るストリーム暗号です。同じ鍵と同じ開始状態なら、暗号化と復号は同じXOR処理で元のバイト列に戻ります。
暗号文の各バイト = 平文の各バイト XOR 鍵ストリームの各バイト復号後の各バイト = 暗号文の各バイト XOR 同じ鍵ストリームの各バイト鍵はテキスト、Hex、Base64のいずれかで入力します。テキストはUTF-8のバイト列として扱うため、日本語を含む場合は画面上の文字数と鍵長(ビット数)が一致しないことがあります。Hexは2桁で1バイトを表し、Base64も文字列をバイト列へ戻してから鍵長を判定します。選択した鍵長は40、56、64、80、128、256ビットで、既定値は128ビットです。選択値に対して鍵の実バイト数が一致しない場合は処理できません。
暗号化結果のBase64とHexは、同じ暗号文バイト列を異なる表記にしたものです。どちらかを選んで復号入力に使えます。復号側ではテキスト結果に加えて、復元されたバイト列のBase64とHexも確認できます。出力文字列を保存・転送する際は、元の表記を相手にも伝えてください。
RC4はブロック単位で処理する暗号ではなく、ストリーム暗号です。このページではモード選択、初期化ベクトル(IV)、パディングを使いません。AESなどブロック暗号の設定をRC4に当てはめたり、他のRC4実装の追加処理を省いていることを忘れたりすると、同じ鍵でも互換性のある結果にならない場合があります。
アルゴリズムの既知の安全上の弱点により、RFC 7465はTLSのすべてのバージョンでRC4暗号スイートの使用を禁止しています。詳細はRFC 7465を参照してください。実装照合用の標準的な出力例はRFC 6229のテストベクトルで確認できます。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
元データを作った仕様や記録に鍵長があれば、その値を選びます。指定がなければ128ビットが初期選択ですが、推測で決めず、互換元の情報を確認してください。
鍵が通常の文字列なら「テキスト」、16進文字列なら「Hex」、Base64文字列なら「Base64」を選択します。同じ見た目の文字列でも形式が異なると鍵バイト列は変わります。画面に表示される現在のバイト数と選択した鍵長を照らし合わせます。
暗号化では入力をテキストとして処理します。復号では入力がBase64かHexかを選び、暗号文を貼り付けます。鍵の値・表記・鍵長は、元の暗号化時と一致させてください。
暗号化後はBase64またはHexをコピーできます。復号後はテキスト表示を確認し、文字化けや空欄がある場合はHexも照合します。元データがUTF-8テキストでなければ、テキスト表示だけでは正しく解釈できないことがあります。
RFC 6229には、鍵と鍵ストリーム出力の組み合わせが複数掲載されています。例えば40ビット鍵 0102030405 に対する先頭16バイトの鍵ストリームは b2396305f03dc027ccc3524a0a1118a8 です。入力をすべてゼロのバイト列とすれば、XOR結果はこの鍵ストリームと同じになります。画面で照合する場合は、鍵をHex形式で指定し、同じ長さのゼロバイト入力をHexとして処理するなど、鍵長と入力形式をそろえてください。これは動作確認用の公開値であり、実データを守るための推奨設定ではありません。
活用例
仕事や日常の流れの中での活用方法を紹介します。
保存形式の仕様にRC4、鍵の表記、暗号文のBase64またはHexが明記されている場合、同じ条件を入力して復元結果を確認します。仕様が不明な鍵や形式を総当たりする用途には向きません。
短いサンプルを暗号化してから同じ鍵で復号し、バイト列とテキスト表記の違いを比べます。XORで往復できることと、暗号化が安全であることは別の話だと理解する教材にできます。
RC4を含む旧ソフトウェアの移行検証で、公開テストベクトルを入力し、暗号化結果のHexを比較します。鍵のバイト列とストリーム開始位置など、比較条件を記録に合わせて統一してください。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
鍵をテキスト、Hex、Base64のどれとして解釈したか、選択した鍵長とバイト数が一致するかを確認します。さらに元実装が標準的なRC4以外の変種や、先頭鍵ストリームを読み捨てる処理を使っていないか調べてください。
鍵や暗号文形式が原因の可能性はありますが、必ずしも鍵違いとは限りません。元のデータがUTF-8テキスト以外のバイト列なら、テキスト表示が読めない場合があります。元データの文字コードやバイナリ形式が分かるときは、Hexの復元結果で確認してください。
手元の暗号文が記録された形式を選びます。Base64は英数字に加えて「+」「/」や末尾の「=」を含むことがあり、Hexは0〜9とa〜fの文字でバイトを表します。形式の選択は暗号方式を変えるものではありません。
いいえ。鍵長を選べることはRC4固有の弱点を解消しません。RFC 7465ではTLSでRC4暗号スイートを使用しないよう規定されています。このツールは旧データとの互換性確認や学習に限ってください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
RC4は安全な新規暗号化方式として使用しないでください。ログイン情報、個人情報、決済情報、通信内容、秘密鍵などを暗号化する目的には不適切です。鍵長を増やしても既知の暗号学的弱点は解消されず、この出力には改ざん検知や送信者認証もありません。
関連
関連ツール、特集、利用可能なAPIを探せます。