Encrypt and decrypt text using the RC4 stream cipher algorithm with variable key lengths.
RC4 is a fast, simple stream cipher that generates a pseudo-random keystream and XORs it with the plaintext. It takes a key but no initialization vector, which is part of what made it so widely deployed in older protocols such as SSL/TLS and WEP. This tool encrypts and decrypts text with RC4 using a 256-bit derived key, and because it is symmetric the same passphrase both encrypts and decrypts your message.
RC4 is cryptographically broken and should not be used to protect real secrets. Decades of analysis have exposed serious flaws — biased keystream bytes and weaknesses in its key-scheduling algorithm — that enable practical plaintext-recovery attacks, and it has been banned from modern TLS. This tool retains RC4 only for working with legacy data and for learning how stream ciphers behave, and it displays a warning to that effect.
Everything runs locally in your browser. Even though RC4 itself is weak, this tool still derives the key from your passphrase with PBKDF2 (SHA-256, 250,000 iterations) over a fresh random salt, and prepends that salt to the ciphertext before Base64-encoding it — so nothing you type is uploaded, logged, or stored. That hardening does not make RC4 safe; if you need real security, choose AES with an authenticated mode instead.
No. RC4 is cryptographically broken — practical attacks can recover plaintext, and it has been banned from modern protocols like TLS. Use it only for legacy interoperability or education, never to protect real secrets.
It is retained here to decrypt or interoperate with legacy data that was already encrypted with RC4, and to help people learn how stream ciphers work.
Use AES, ideally with an authenticated mode such as AES-GCM. AES is the modern standard, is far more secure, and is widely supported.
No. Key derivation, encryption, and decryption all run locally in JavaScript, so your passphrase and plaintext never leave your device.
No. RC4 takes a key but no IV. This tool still uses a random per-encryption salt for key derivation and prepends it to the ciphertext, so decryption only needs your passphrase.