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.

O RC4 está quebrado: seu fluxo de chave tem vieses estatísticos e ele é proibido no TLS (RFC 7465). Use apenas com dados antigos, nunca para nova cifragem.

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

  1. 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).
  2. Digite ou cole o Texto puro.
  3. Clique em Criptografar e escolha Base64 ou Hex como Codificação da saída.
  4. Copie o texto cifrado.

Exemplo

Entrada
Raw key 4b6579 ("Key"), plaintext "Plaintext", Hex output
Saída
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).

Explore mais categorias