Criptografia assimétrica

Boa tarde!

Gostaria de criptografar algumas informações com criptografia assimétrica.

Já verifiquei como gerar o par de chaves, exportar somente a chave pública etc. Porém em todos os exemplos que vi a chave pública e privada são gravadas em um arquivo. (keystore)

Gostaria de fazer algo diferente, gerar a chave pública e privada e salvar as informações da chave em uma String? Alguém sabe se isto é possível?

Obrigado a todos.

que algoritmo está usando?

use AES

No meu exemplo, não uso um KeyStore e sim um arquivo serializado. Em vez de serializar em um arquivo, crie um array de bytes (cuidado com strings, já que a conversão arrays de bytes -> strings não é perfeita e você tem de usar alguma codificação como Base-64 ou hexadecimal para evitar problemas na conversão.)

Estou utilizando DSA

E quanto a esta pergunta, alguém sabe se é possível?

[quote]Gostaria de fazer algo diferente, gerar a chave pública e privada e salvar as informações da chave em uma String? Alguém sabe se isto é possível?
[/quote]

Obrigado.

Do jeito que eu fiz, eu salvei as coisas em um FileOutputStream, mas você pode modificar meu exemplo e salvar em um ByteArrayOutputStream, obter o byte array correspondente, e então usar sun.misc.BASE64Encoder para converter o byte[] em uma String sem problemas.

De qualquer maneira, você pode ver como são feitas as coisas no PGP, tal como foi feito pelo BouncyCastle:

http://www.bouncycastle.org

Ele tem a implementação da parte PGP do DSA, com chave pública e privada em formato string (Base-64) e tudo.