Criptografia RSA com chave pública
Criptografe uma mensagem curta com uma chave pública RSA (PEM) usando RSA-OAEP SHA-256, OAEP SHA-1 ou PKCS#1 v1.5. Gere um par de chaves de teste com um clique. Só local.
OAEP é o preenchimento recomendado. O MGF1 usa o mesmo hash, como no Web Crypto e no openssl pkeyutl -pkeyopt rsa_oaep_md.
O RSA só cifra dados curtos: com chave de 2048 bits, no máximo 190 bytes (OAEP SHA-256), 214 bytes (OAEP SHA-1) ou 245 bytes (PKCS#1 v1.5). Para dados maiores, cifre-os com AES e use o RSA só para a chave AES.
A cifragem RSA é aleatória: cifrar o mesmo texto duas vezes gera textos cifrados diferentes, e ambos são decifrados corretamente.
Executa totalmente no seu navegador. Seus dados nunca são enviados.
O que é Criptografia RSA?
Criptografa uma mensagem curta ou uma chave simétrica com uma chave pública RSA em formato PEM (SPKI BEGIN PUBLIC KEY, PKCS#1 BEGIN RSA PUBLIC KEY, um certificado X.509 ou uma chave privada da qual a parte pública é extraída). Somente o dono da chave privada correspondente consegue descriptografar o resultado.
Como usar Criptografia RSA
- Cole a Chave pública (PEM) do destinatário, ou clique em Gerar um par de chaves de teste (2048 bits) para experimentar.
- Escolha o Preenchimento: RSA-OAEP (SHA-256) é o recomendado; use o que o código receptor espera.
- Digite o Texto puro (ou mude a codificação de entrada para Hex para criptografar bytes brutos, como uma chave AES).
- Clique em Criptografar e copie o texto cifrado em Base64 ou Hex.
Exemplo
"Hello RSA" with a 2048-bit public key, RSA-OAEP (SHA-256), Base64 output
A 344-character Base64 string (256 bytes) that changes on every run
O RSA-OAEP é aleatório, então não existe uma saída fixa; descriptografá-la com a chave privada devolve “Hello RSA”.
Quando usar Criptografia RSA
Use RSA para criptografar segredos pequenos – uma senha, um token ou uma chave AES gerada aleatoriamente – para alguém cuja chave pública você tem. Não o use para dados grandes: criptografe os dados com AES e só a chave AES com RSA (criptografia híbrida), ou use PGP. Prefira OAEP; use PKCS#1 v1.5 só se um sistema legado exigir.
Como funciona Criptografia RSA
A criptografia RSA calcula c = mᵉ mod n sobre a mensagem preenchida. O OAEP (PKCS#1 v2.2) mascara a mensagem com MGF1 usando SHA-256 ou SHA-1 e bytes de semente aleatórios; o PKCS#1 v1.5 acrescenta no início um preenchimento aleatório de bytes não nulos. O preenchimento é aleatório, então criptografar o mesmo texto duas vezes gera textos cifrados diferentes. O texto cifrado tem o tamanho do módulo (256 bytes para chaves de 2048 bits). O tamanho máximo da mensagem é k − 2·hLen − 2 bytes no OAEP e k − 11 no v1.5 (190, 214 e 245 bytes para uma chave de 2048 bits). As chaves são lidas e a criptografia é feita com node-forge; os resultados interoperam com OpenSSL, Web Crypto e Node.js.
Casos de Uso Comuns
- Criptografar uma chave de sessão AES para testes de criptografia híbrida
- Verificar se seu backend consegue descriptografar texto cifrado OAEP-SHA256 vindo do navegador
- Enviar um segredo curto para alguém que lhe passou a chave pública
- Produzir dados de teste PKCS#1 v1.5 para uma API legada
- Aprender como os limites de tamanho de mensagem do RSA dependem do tamanho da chave e do preenchimento
Nota de Segurança
Chaves e mensagens são processadas apenas no seu navegador. Não cole chaves privadas de produção em nenhum site que você não controla – gere um par de chaves de teste.
Perguntas Frequentes
Por que minha mensagem é longa demais?
O RSA só consegue criptografar algumas centenas de bytes. Com uma chave de 2048 bits, o OAEP SHA-256 permite 190 bytes. Criptografe dados mais longos com AES e use RSA apenas para a chave AES.
Qual preenchimento devo escolher?
RSA-OAEP com SHA-256 para sistemas novos (Web Crypto RSA-OAEP com hash: 'SHA-256', OpenSSL pkeyutl -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256). OAEP SHA-1 é o padrão de muitas bibliotecas antigas (Java RSA/ECB/OAEPWithSHA-1AndMGF1Padding). PKCS#1 v1.5 só para compatibilidade legada.
Por que o texto cifrado muda a cada vez?
Os dois preenchimentos acrescentam bytes aleatórios antes da criptografia. Isso impede que invasores adivinhem mensagens curtas criptografando candidatas por conta própria.
Posso criptografar com uma chave privada?
Você pode colar uma chave privada – a metade pública dela é usada para criptografar. “Criptografar com a chave privada” no sentido de assinar é outra operação e não é oferecida aqui.