Como usar
- Escolha o Algoritmo: RSA-OAEP para cifrar, ou um dos algoritmos de assinatura.
- Escolha o Tamanho da chave. 2048 bits é o mínimo usual; 4096 bits demora mais para gerar.
- Clique em Gerar par de chaves e depois use Copiar ou Baixar nas quatro caixas.
- Guarde a chave privada em um gerenciador de segredos, e nunca a cole em um site, em um chat ou em um arquivo que outras pessoas possam ler.
O que o par de chaves guarda
Um par de chaves RSA tem uma parte pública, que qualquer pessoa pode ter, e uma parte privada, que só o dono guarda. A chave privada é escrita como PKCS#8 (RFC 5958), a pública como SubjectPublicKeyInfo (RFC 5280). As duas vêm envolvidas em PEM, o texto Base64 entre as linhas BEGIN e END (RFC 7468). A forma JWK (RFC 7517) guarda os mesmos números como JSON.
módulo n = p × q, dois primos de cerca da metade do tamanho da chave cada
expoente público e = 65537 (0x010001)
expoente privado d, com d × e = 1 módulo (p − 1) × (q − 1)
Algoritmo e tamanho da chave
O RSA-OAEP cifra, e o RSA-PSS e o RSASSA-PKCS1-v1_5 assinam. Os três usam SHA-256 aqui. O tamanho da chave é o comprimento do módulo n: 2048 bits é o mínimo usual hoje, e 3072 e 4096 bits servem para chaves que devem durar mais. Uma chave maior é mais lenta para usar, mas a chave pública de um par de 4096 bits continua pequena.
O navegador gera o par com a sua própria biblioteca criptográfica (crypto.subtle.generateKey, da Web Cryptography API). A página não tem código próprio de RSA.
Onde as chaves estão seguras, e onde não estão
As chaves nunca saem desta página: elas não são enviadas, guardadas nem registradas. O risco está na própria página. Qualquer coisa que roda nela, e qualquer extensão do navegador, pode ler uma chave enquanto ela é mostrada, e uma cópia na área de transferência ou um download fica no disco até ser apagada.
Para uma chave que protege dinheiro, uma identidade ou um sistema em produção, gere-a onde a chave privada não possa ser copiada para fora: em um módulo de segurança de hardware, em um cofre de chaves ou em um servidor que você controla.
Exemplo resolvido: um par RSA-OAEP de 2048 bits
Escolher RSA-OAEP e 2048 bits, e depois clicar em Gerar par de chaves, gera uma chave privada PKCS#8 cujo PEM começa com -----BEGIN PRIVATE KEY----- e uma chave pública SPKI cujo PEM começa com -----BEGIN PUBLIC KEY-----. O JWK da chave pública tem kty RSA e e AQAB, que é o Base64url de 65537. O valor de n tem 256 bytes, porque 2048 bits são 256 bytes.
Perguntas frequentes
É seguro gerar uma chave para um site real nesta página?
Para aprender e testar, sim. Para chaves que protegem dinheiro, identidades ou um sistema no ar, não: o navegador e as suas extensões podem ler uma chave enquanto ela é mostrada. Gere essas chaves onde a chave privada não possa ser copiada para fora.
Por que a chave privada está em PKCS#8, e não no formato antigo RSA PRIVATE KEY?
O PKCS#8 (RFC 5958) diz dentro da chave qual é o algoritmo, então quem a lê sabe para que ela serve. A maioria das bibliotecas aceita esse formato. Se a sua pede o formato antigo, converta-o com uma ferramenta como o openssl.
Por que o expoente público é 65537?
É 2 elevado a 16 mais 1, um número pequeno com só dois bits acesos. Ele deixa a operação pública rápida e é o valor que as bibliotecas mais usadas adotam, então a página o usa em todas as chaves.
Devo escolher 2048, 3072 ou 4096 bits?
2048 bits é o mínimo usual hoje. Escolha 3072 ou 4096 quando a chave precisar ficar segura por muitos anos, e aceite que assinar ou decifrar leva mais tempo com uma chave maior.
Por que a chave privada é muito maior que a pública?
A chave pública guarda só o módulo e o expoente público. A chave privada também guarda os dois primos e os valores que aceleram a decifragem (RFC 8017, apêndice A.1.2), então ela é várias vezes maior.
A página guarda minhas chaves depois que eu a fecho?
Não. As chaves existem só na memória da página aberta, e a página não guarda nada no navegador, nem mesmo no armazenamento local. Copie ou baixe as chaves antes de fechá-la.
Fontes
- RFC 8017 (em inglês): PKCS #1 RSA Cryptography Specifications Version 2.2
- RFC 5958 (em inglês): Asymmetric Key Packages (PKCS#8)
- RFC 7468 (em inglês): Textual Encodings of PKIX, PKCS, and CMS Structures
- RFC 7517 (em inglês): JSON Web Key (JWK)
- W3C (em inglês): Web Cryptography API
Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.