Toolonit
  1. Início
  2. Criptografia
  3. Criptografia RSA

Criptografia e descriptografia RSA

Criptografe com a chave pública RSA e descriptografe com a privada (OAEP ou PKCS#1 v1.5).

Padding

Descriptografe com o mesmo padding usado na criptografia. OAEP com SHA-256 é o padrão moderno; PKCS#1 v1.5, só para sistemas antigos.

Saída em
Descriptografe isto com o OpenSSL (o arquivo .bin):
openssl pkeyutl -decrypt -inkey private.pem -in ciphertext.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256

Criptografe um segredo curto com a chave pública RSA de alguém (ou com o certificado dessa pessoa) para que só quem tem a chave privada consiga lê-lo, ou descriptografe um texto cifrado com a sua chave privada. Escolha OAEP com SHA-256 (recomendado), OAEP com SHA-1 ou PKCS#1 v1.5; o resultado sai em Base64 ou hex e funciona com o OpenSSL. Tudo roda no seu navegador, então chaves e mensagens nunca saem do seu dispositivo; é grátis e não exige cadastro.

Como criptografar e descriptografar com RSA

  1. Escolha Criptografar ou Descriptografar e cole a chave ou abra um arquivo de chave: uma chave pública ou um certificado para criptografar, a chave privada (PKCS#8 ou PKCS#1) para descriptografar.
  2. Escolha o padding: OAEP · SHA-256, a menos que o outro lado precise de outro.
  3. Digite a mensagem ou cole o texto cifrado em Base64 ou hex. O resultado aparece enquanto você digita.
  4. Copie o resultado ou baixe o texto cifrado como arquivo .bin para usar no OpenSSL.

Recursos

  • Criptografa com uma chave pública, um certificado ou a metade pública de uma chave privada; descriptografa com a chave privada
  • OAEP com SHA-256 (padrão), OAEP com SHA-1 ou PKCS#1 v1.5
  • Chaves em PEM ou DER: SPKI, PKCS#1, PKCS#8 e certificados X.509, até 16384 bits
  • Texto cifrado em Base64, hex ou arquivo .bin; descriptografa Base64 ou hex colado, ou um arquivo .bin aberto
  • Mostra quantos bytes a chave e o padding conseguem criptografar e o comando openssl pkeyutl equivalente
  • Roda em um worker WebAssembly no seu navegador

É privado?

Sim. A criptografia e a descriptografia rodam no seu navegador, em um worker WebAssembly; chaves, mensagens e textos cifrados nunca são enviados nem armazenados.

Perguntas frequentes

Qual pode ser o tamanho da mensagem?

O RSA criptografa um único bloco. Com uma chave de 2048 bits, isso dá até 190 bytes com OAEP SHA-256, 214 com OAEP SHA-1 e 245 com PKCS#1 v1.5; chaves maiores permitem mais. Para qualquer coisa mais longa, criptografe os dados com uma cifra simétrica ou use a Criptografia de arquivos.

Por que o texto cifrado muda a cada vez?

Todo padding acrescenta bytes aleatórios antes de criptografar, então a mesma mensagem gera um texto cifrado novo a cada vez. Isso é proposital, e cada um deles é descriptografado para a mesma mensagem.

Funciona com o OpenSSL?

Sim. Um texto cifrado criado aqui é descriptografado com openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 (ou rsa_padding_mode:pkcs1), e textos cifrados criados com openssl pkeyutl -encrypt são descriptografados aqui. Use o mesmo padding dos dois lados.

Quais formatos de chave posso usar?

Chaves públicas PEM (BEGIN PUBLIC KEY ou BEGIN RSA PUBLIC KEY), certificados e chaves privadas sem criptografia em PKCS#8 (BEGIN PRIVATE KEY) ou PKCS#1 (BEGIN RSA PRIVATE KEY), também como arquivos DER. Chaves protegidas por senha e chaves OpenSSH precisam ser convertidas antes; a ferramenta explica como.

Por que a descriptografia falha?

Geralmente por causa do padding ou da chave. Descriptografe com o mesmo padding usado na criptografia e com a chave privada que corresponde à chave pública usada; a ferramenta não distingue esses casos, de propósito, então experimente os outros paddings. Um texto cifrado sempre tem o tamanho da chave (256 bytes para uma chave de 2048 bits); se for menor, ele foi cortado ao ser copiado.

Ferramentas relacionadas