[?] Criptografia

Oi amigos!

Tenho algumas dúvidas quanto a criptogragia em sistemas web.

1- Java possui alguma classe com métodos que facilitem a criptografia de dados??

2- Vamos supor que eu tenha um formulário web com campos de login (nome de usuário e senha). Quando eu clicar no botão submit os dados existentes nos campos serão enviados a uma classe servlet que se encarrega de criptografar a senha e utilizar métodos das camadas inferiores para compara-los com dados do banco. A pergunta é: “É possível que alguém pegue esta senha antes que ela chegue no lado servidor para que o servlet a criptografe?” se sim, como posso fazer para evitar um possível roubo desta senha?

Abraços!

http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html

A primeira pergunta já foi respondida, sobre a segunda:

Sim, é possível que alguem pegue esses dados, inclusive isso é bastante simples… pra evitar isso você deve usar uma conexão segura, SSL (http://pt.wikipedia.org/wiki/SSL). A criptografia para gravar a senha no banco só evita que alguem que tenha acesso ao banco leia a senha diretamente da tabela.

A configuração do SSL deve ser feita no seu servidor web, no caso do Tomcat você pode ver um tutorial em: http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html