Añade el texto o cifrado compatible y su contraseña. Elige la operación para comprobar un ciclo de cifrado y descifrado RC4.
Se ejecuta localmente en tu navegadorEsta página cifra y descifra texto con RC4 dentro del navegador. El resultado es texto Base64 en el contenedor de contraseña de CryptoJS que empieza por U2FsdGVkX1, y la misma contraseña lo devuelve al texto original. RC4 es un cifrado de flujo antiguo con sesgos conocidos: usa la página para leer datos heredados y reproducir la salida de otras herramientas, no para proteger nada nuevo.
El texto y la contraseña se quedan en la página: no se sube nada y la operación termina igual con la red desconectada. Tampoco se guarda nada, así que una frase perdida no se puede recuperar aquí. La entrada y la salida son solo texto: no hay carga de archivos, ni modo binario, ni botón de descarga.
La salida es un contenedor de contraseña de CryptoJS: los ocho bytes Salted__ (por eso la cadena empieza por U2FsdGVkX1), ocho bytes de sal aleatoria y después la salida de RC4, todo codificado en Base64. El material de clave se deriva de la contraseña y la sal con EVP_BytesToKey y MD5 y mide 32 bytes. En las pruebas, una implementación independiente de esa derivación descifró la salida de esta página, y un texto cifrado construido igual se descifró de vuelta en la página.
El descifrado toma la sal del propio contenedor, así que solo la contraseña tiene que viajar con el texto cifrado. Una sal distinta implica un flujo de clave distinto: por eso la misma contraseña se cifra de forma diferente en cada ejecución y por eso todas esas cadenas vuelven al mismo texto. El texto se lee como UTF-8; lo que no sea UTF-8 válido no se puede representar aquí.
OpenSSL deriva una clave RC4 de 16 bytes (openssl enc -rc4 -md md5; -rc4-40 usa cinco), mientras que CryptoJS en esta página usa 32, de modo que no pueden leer la salida del otro. En las pruebas, OpenSSL convirtió un criptograma de la página en datos ilegibles y esta página respondió a un contenedor de openssl enc -rc4 con el mensaje de contraseña incorrecta. Dar una clave más larga a OpenSSL no lo arregla: -K con 64 caracteres hexadecimales imprimió «hex string is too long, ignoring excess» y usó los primeros 16 bytes.
Interoperar exige implementar la misma derivación de clave: EVP_BytesToKey(MD5) sobre la contraseña y la sal, tomar 32 bytes y ejecutar RC4. Si quieres una contraparte de línea de comandos que funcione sin cambios, la página AES de esta familia coincide exactamente con openssl enc -aes-256-cbc -md md5, y openssl enc -rc4 también es heredado: OpenSSL 3 solo lo ofrece a través del proveedor legacy.
Una contraseña incorrecta o una cadena que no sea uno de estos contenedores se avisa debajo de los botones en el idioma de la página. La comprobación es una validación UTF-8 de los bytes descifrados, así que es una ayuda y no una garantía: en las pruebas, 24 intentos con contraseña incorrecta se señalaron todos, pero un flujo de clave que por casualidad se decodifica como texto pasa en silencio.
RC4 no ofrece autenticación y ni las ediciones ni el truncado se detectan de forma fiable. Cambiar un byte del criptograma modificó exactamente un carácter del texto recuperado y no mostró ningún aviso, y cortar el criptograma a alrededor del 60 % de su longitud devolvió la primera parte de la contraseña como si fuera el mensaje completo. Donde la manipulación importe, usa un cifrado autenticado como AES-GCM; esta página sirve para reproducir e inspeccionar datos RC4 heredados.