Cifrado RSA con clave pública
Cifra un mensaje corto con una clave pública RSA (PEM) usando RSA-OAEP SHA-256, OAEP SHA-1 o PKCS#1 v1.5. Genera un par de claves de prueba con un clic. Solo en local.
OAEP es el relleno recomendado. MGF1 usa el mismo hash, igual que Web Crypto y openssl pkeyutl -pkeyopt rsa_oaep_md.
RSA solo cifra datos cortos: con una clave de 2048 bits, como máximo 190 bytes (OAEP SHA-256), 214 bytes (OAEP SHA-1) o 245 bytes (PKCS#1 v1.5). Para datos más largos, cífralos con AES y usa RSA solo para la clave AES.
El cifrado RSA es aleatorio: cifrar dos veces el mismo texto da textos cifrados distintos, y ambos se descifran correctamente.
Se ejecuta completamente en tu navegador. Tus datos nunca se suben.
¿Qué es Cifrado RSA?
Cifra un mensaje corto o una clave simétrica con una clave pública RSA en formato PEM (SPKI BEGIN PUBLIC KEY, PKCS#1 BEGIN RSA PUBLIC KEY, un certificado X.509 o una clave privada de la que se toma la parte pública). Solo el propietario de la clave privada correspondiente puede descifrar el resultado.
Cómo usar Cifrado RSA
- Pega la Clave pública (PEM) del destinatario, o haz clic en Generar un par de claves de prueba (2048 bits) para probar.
- Elige el Relleno: se recomienda RSA-OAEP (SHA-256); usa el que espere el código receptor.
- Escribe el Texto plano (o cambia la codificación de entrada a Hex para cifrar bytes en bruto, como una clave AES).
- Haz clic en Cifrar y copia el texto cifrado en Base64 o Hex.
Ejemplo
"Hello RSA" con una clave pública de 2048 bits, RSA-OAEP (SHA-256), salida Base64
A 344-character Base64 string (256 bytes) that changes on every run
RSA-OAEP es aleatorio, así que no hay una salida fija; al descifrarla con la clave privada se obtiene "Hello RSA".
Cuándo usar Cifrado RSA
Usa RSA para cifrar secretos pequeños —una contraseña, un token o una clave AES generada al azar— para alguien cuya clave pública tienes. No lo uses para datos grandes: cifra los datos con AES y cifra con RSA solo la clave AES (cifrado híbrido), o usa PGP. Prefiere OAEP; usa PKCS#1 v1.5 solo si lo exige un sistema heredado.
Cómo funciona Cifrado RSA
El cifrado RSA calcula c = mᵉ mod n sobre el mensaje con relleno. OAEP (PKCS#1 v2.2) enmascara el mensaje con MGF1 usando SHA-256 o SHA-1 y bytes de semilla aleatorios; PKCS#1 v1.5 antepone un relleno aleatorio de bytes distintos de cero. El relleno es aleatorio, así que cifrar el mismo texto dos veces da textos cifrados distintos. El texto cifrado mide lo mismo que el módulo (256 bytes con claves de 2048 bits). El tamaño máximo del mensaje es k − 2·hLen − 2 bytes con OAEP y k − 11 con v1.5 (190, 214 y 245 bytes para una clave de 2048 bits). Las claves se analizan y el cifrado se hace con node-forge; los resultados son interoperables con OpenSSL, Web Crypto y Node.js.
Casos de Uso Comunes
- Cifrar una clave de sesión AES para pruebas de cifrado híbrido
- Comprobar que tu backend puede descifrar texto cifrado OAEP-SHA256 generado en un navegador
- Enviar un secreto corto a alguien que te dio su clave pública
- Producir datos de prueba PKCS#1 v1.5 para una API heredada
- Aprender cómo los límites de tamaño de mensaje de RSA dependen del tamaño de clave y del relleno
Nota de Seguridad
Las claves y los mensajes se procesan solo en tu navegador. No pegues claves privadas de producción en ningún sitio web que no controles: genera en su lugar un par de claves de prueba.
Preguntas Frecuentes
¿Por qué mi mensaje es demasiado largo?
RSA solo puede cifrar unos pocos cientos de bytes. Con una clave de 2048 bits, OAEP SHA-256 permite 190 bytes. Cifra los datos más largos con AES y usa RSA solo para la clave AES.
¿Qué relleno debo elegir?
RSA-OAEP con SHA-256 para sistemas nuevos (RSA-OAEP de Web Crypto con hash: 'SHA-256', OpenSSL pkeyutl -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256). OAEP SHA-1 es el valor predeterminado de muchas librerías antiguas (Java RSA/ECB/OAEPWithSHA-1AndMGF1Padding). PKCS#1 v1.5 solo por compatibilidad heredada.
¿Por qué el texto cifrado cambia cada vez?
Ambos rellenos añaden bytes aleatorios antes de cifrar. Esto impide que un atacante adivine mensajes cortos cifrando candidatos por su cuenta.
¿Puedo cifrar con una clave privada?
Puedes pegar una clave privada: se usa su mitad pública para cifrar. "Cifrar con la clave privada" en el sentido de firmar es otra operación y no se ofrece aquí.