Algoritmo RSA

Ola Galera,
alguem sabe
aonde eu posso encontrar
o algoritmo de RSA pronto
em JAVA?

Ouvi dizer que o Algoritmo
RSA eh melhor algorimo
para criptografar senhas,
pois estou precisando criptografar
senhas.

[]'s

Pela Classe MessageDigest
nao tem como eu criar
uma instancia passando a String
RSA pois ela soh aceita os algoritmos MD5 ou SHA
vou precisar do algoritmo RSA.

[]'s

Creio que isto é o suficiente para vc implementa-lo:

Alguém andou falando alguma besteira para você. O algoritmo RSA normalmente é usado para autenticação digital (assinatura), não para criptografia.

Se quer criptografar uma senha, pode usar um código-exemplo que dei aqui no GUJ, mas obviamente você tem de alterar alguns parâmetros:

http://www.guj.com.br/posts/list/35256.java#187467

De qualquer maneira, o algoritmo RSA está disponível no Java (tanto a parte de assinatura digital quanto a de criptografia) usando-se Cipher.getInstance (“RSA”).

Falaram besteira mesmo…

RSA é sim um algoritmo de criptografia.
Autenticação digital usa RSA para criptografar as chaves.

“RSA is an algorithm for public-key cryptography.”

Olá galera,
muito obrigado pela
ajuda, mas só confirmando
então o Algoritmo RSA é
um algoritmo de criptografia
q pode ser utilizado para criptografar
senhas e ñ é utilizado para criptografar
dados de mensagens e a autenticação digital
utiliza do Algoritmo RSA.
É isso msm?

Mas alguém sabe aonde eu posso
encontrar o algoritmo RSA pronto
em Java para eu poder utilizar?

Abraços.

[quote=ricardocomp]Olá galera,
muito obrigado pela
ajuda, mas só confirmando
então o Algoritmo RSA é
um algoritmo de criptografia
q pode ser utilizado para criptografar
senhas e ñ é utilizado para criptografar
dados de mensagens e a autenticação digital
utiliza do Algoritmo RSA.
É isso msm?

Mas alguém sabe aonde eu posso
encontrar o algoritmo RSA pronto
em Java para eu poder utilizar?

Abraços.
[/quote]

Aham, eu não usaria o RSA para criptografar senhas porque elas ficam muito grandes. Se você leu o segundo link no meu post, vai ver uma implementação bem “chumbada” para usar. Se quiser só para criptografar senhas, use o que postei no primeiro link.

Jóia thingol?
eu estou dando uma
olhada no algoritmo RSA q
vc me passou aqui,
vou ver se consigo
usar o código q vc me passou.

abraço.

Olá thingol,
eu ñ sei quase
nada de criptografia,
por isso eu ñ entendi
qdo vc falou q a senhas
ficam muito grande, como assim?

por exemplo se um usuário
digitar uma senha algo do tipo:
as13kl com seis caracteres
qdo ela for criptografada
na base hexa ela vai
ficar muito gende em
q sentindo?

Abraço.

Se você usar RSA, e com uma chave de 1024 bits, ela vai ocupar pelo menos 1024 bits, ou seja, se for passar para base-64, vai dar:

1024 / 8 * 4 / 3 = 171 caracteres (arredondando para cima).

Se você usar aquela outra rotina que lhe passei, deve dar bem menos: 6 caracteres, arredondando para o próximo múltiplo de 16, e acrescentando um valor adicional de 16 bytes, vai dar 32 bytes; passados para base-64, vai dar 32 * 4 / 3 = 43 (arredondando para cima) caracteres.

Então use a tal outra rotina (que usa AES, não RSA).

Entaum thingol
eu quero usar
a base hexadecimal,
com 1024 bits.
mas uma coisa q eu
queria perguntar
tb é sobre a segurança
qdo eu utilizo o algoritmo RSA
para criptografar as minhas senhas
eu sei q é o algoritmo de criptografia
mais seguro q existe e q todas as tentativas
de quebra-ló falharam.

e essa conta q vc fez
1024/8*4/3?

vc pegou 1024/8 para achar o número
de bytes ñ é isso? e a mltiplicação
por 4/3?

Abraço.

Qto ao tamanho
ñ é problema
para mim,
eu preciso é de
máxima segurança
possível.

Qto ao tamanho
ñ é problema
para mim,
eu preciso é de
máxima segurança
possível.

Blz thingol?
Dá só uma olhada
no q eu consegui achar aqui:

http://www.mcs.csuhayward.edu/~pwong/cs6520_sum04/sec1/rsa_java.pdf

Abração e obrigado a todos pela ajuda. =)