Criptografia RC4 (legado)
Criptografe texto com a cifra de fluxo RC4 (ARC4) usando uma senha compatível com OpenSSL ou uma chave hex bruta. Apenas para compatibilidade legada e vetores de teste.
A saída usa o formato "Salted__" do OpenSSL em Base64: um salt aleatório de 8 bytes seguido do texto cifrado. A chave e o IV são derivados da senha e do salt, então o mesmo texto gera um resultado diferente a cada vez. Comando equivalente:
A senha é convertida em uma chave RC4 de 128 bits, como faz o OpenSSL. O CryptoJS.RC4 com senha usa uma chave de 256 bits, então a saída dele não pode ser decifrada aqui.
openssl enc -rc4 -md md5 -a -A -provider legacy -provider default -k '…'Executa totalmente no seu navegador. Seus dados nunca são enviados.
O que é Criptografia RC4?
Criptografa dados com RC4 (também chamado ARC4 ou ARCFOUR), uma cifra de fluxo usada antigamente no WEP, nas primeiras versões do TLS e em muitos formatos de arquivo. A saída tem o mesmo tamanho da entrada, porque o RC4 faz XOR dos dados com um fluxo de chave.
Como usar Criptografia RC4
- Escolha Senha (compatível com OpenSSL) e digite uma senha, ou Chave + IV brutos (hex) e informe uma chave de 1 a 256 bytes em hex (o RC4 não usa IV).
- Digite ou cole o Texto puro.
- Clique em Criptografar e escolha Base64 ou Hex como Codificação da saída.
- Copie o texto cifrado.
Exemplo
Raw key 4b6579 ("Key"), plaintext "Plaintext", Hex output bbf316e8d940af0ad3
O clássico vetor de teste do RC4.
Quando usar Criptografia RC4
Use-a para interoperar com softwares antigos ou conferir vetores de teste RC4 (RFC 6229). Nunca use RC4 para criptografia nova; os primeiros bytes do fluxo de chave vazam informações sobre a chave e não há verificação de integridade.
Como funciona Criptografia RC4
O RC4 monta uma permutação de 256 bytes a partir da chave (algoritmo de escalonamento de chave) e depois gera um byte de fluxo de chave por byte de entrada, que é combinado com o texto puro por XOR. O modo bruto usa os bytes da sua chave diretamente (1–256 bytes). O modo senha deriva uma chave de 16 bytes da senha e de um salt aleatório como o openssl enc -rc4 (EVP_BytesToKey MD5 ou PBKDF2-SHA256) e gera o formato Salted__. Criptografia e descriptografia são a mesma operação.
Casos de Uso Comuns
- Verificar vetores de teste RC4 como Key/Plaintext → BBF316E8D940AF0AD3
- Produzir dados para uma aplicação legada que usa ARC4
- Estudar por que o WEP e o RC4 no TLS foram quebrados
- Recriar a saída de
openssl enc -rc4
Nota de Segurança
O RC4 está quebrado: seu fluxo de chave tem fortes vieses estatísticos e a RFC 7465 o proíbe no TLS. Ele não oferece proteção de integridade. Use-o apenas para dados legados.
Perguntas Frequentes
Por que não consigo descriptografar saída do CryptoJS.RC4 feita com senha?
O CryptoJS deriva da senha uma chave RC4 de 256 bits; o OpenSSL deriva uma de 128 bits. Esta ferramenta segue o OpenSSL. Com uma chave bruta, os dois produzem resultados idênticos.
O RC4 usa IV?
Não. Por isso reutilizar a mesma chave em duas mensagens é catastrófico: fazer XOR dos dois textos cifrados cancela o fluxo de chave. O modo senha evita isso usando um salt aleatório a cada vez.
Qual comando do OpenSSL corresponde?
openssl enc -rc4 -md md5 -a -A -provider legacy -provider default -k <passphrase> (o OpenSSL 3 precisa do provider legacy).