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 與 WEP Wi-Fi 的串流加密法。它沒有區塊、沒有模式,也沒有 IV:它把金鑰轉成一串位元組,再與文字做 XOR 運算,所以密文長度和文字完全相同。本頁使用 openssl enc -pbkdf2 格式的密碼,或 40 到 2048 位元(預設 128)的十六進位金鑰,以 RC4 加密與解密文字,讓你能讀取舊系統的資料,或為它們產生資料。RC4 已被破解;新資料請使用 AES 或 ChaCha20。全部在瀏覽器中執行:文字與金鑰都不會離開你的裝置,而且免費、免註冊。
如何解密 RC4 文字
- 選擇「解密」並貼上 Base64 或十六進位文字——格式會自動偵測——或選擇「加密」並輸入文字。
- 輸入密碼,或切換到「金鑰與 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 或十六進位輸入與輸出;不是文字的結果以十六進位顯示
隱私安全嗎?
是的。RC4 在瀏覽器內以 WebAssembly 執行;你解密的資料及其金鑰或密碼絕不會上傳或儲存。
常見問題
RC4 安全嗎?
不安全。它的金鑰串流有統計偏差,攻擊者能藉此還原資料,這也是 RFC 7465 在 2015 年禁止 TLS 使用 RC4 的原因。請只用它讀取既有的 RC4 資料,要保留的資料都請以 AES 或 ChaCha20 重新加密。
ARC4 和 RC4 一樣嗎?
一樣。RC4 由 Ron Rivest 在 1987 年設計,並以商業機密保護;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 模式中,請以 -K <金鑰 hex> 取代 -pbkdf2 -iter,不需要 -iv。openssl enc 不支援其他 RC4 金鑰長度。
重複使用 RC4 金鑰安全嗎?
不安全。相同的金鑰一定會產生相同的金鑰串流,所以把同一把金鑰產生的兩個輸出做 XOR,就會抵銷金鑰串流,露出兩段文字的 XOR 結果。在密碼模式中不會發生這種情況:隨機鹽值讓每則訊息都有自己的金鑰,每次的輸出也都不同。在金鑰與 IV 模式中,每則訊息都請使用新的金鑰。
為什麼得到無法閱讀的位元組,而不是錯誤訊息?
因為 RC4 無法分辨金鑰是對是錯:用錯誤的密碼、迭代次數或金鑰長度解密,仍然會產生位元組,只是隨機的,頁面會以十六進位顯示。請確認每項設定都與加密時相同。