- Início
- Criptografia
- Criptografia RSA
Criptografia e descriptografia RSA
Criptografe com a chave pública RSA e descriptografe com a privada (OAEP ou PKCS#1 v1.5).
openssl pkeyutl -decrypt -inkey private.pem -in ciphertext.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256Criptografe 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
- 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.
- Escolha o padding: OAEP · SHA-256, a menos que o outro lado precise de outro.
- Digite a mensagem ou cole o texto cifrado em Base64 ou hex. O resultado aparece enquanto você digita.
- 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.