Criptografar senha

Estou criando uma tela de login e quando um usuário tentar logar vou comparar a senha que ele digitou com a senha armazenada no servidor criptografada com md5.
Mas se eu criptografar a senha digitada quando a requisição chegar no servidor a senha vai passar em claro na rede. Daí não vai adiantar nada a criptografia no servidor.
Para isso não acontecer precisava que a senha já saisse criptografada do cliente. Alguém tem alguma idéia de como faz isso? JavaScript?

Via javascript não adianta nada, né cara? hehe

Para resolver esse problema https ou um cliente mais interessante, como um applet por exemplo.

Javascript >> applet(que sabe como criptografar uma senha) >> server

Se tiver um algoritmo MD5(criptografia de mão única) em javascript acho que pode dar certo… vou dar uma procurada.

[quote=jordy][quote]
Via javascript não adianta nada, né cara? hehe
[/quote]

Se tiver um algoritmo MD5(criptografia de mão única) em javascript acho que pode dar certo… vou dar uma procurada.[/quote]

aí eu abro a fonte do página vejo seu “algorítmo de mão única”, e consigo decifrar como vc criptografa, aí pra descriptografar é moleza…

Mande a senha via post (que não aparece na url) sobre o protocolo https, pronto, o protocolo se encarrega de criptografar pra vc.

eu não sei quase nada de criptografia, mas eu achava que criptografia com message digests(MD5, HMAC, …) era irreversível…
Acho que https não vai dar pra usar… precisa de certificado digital?

[quote=jordy]eu não sei quase nada de criptografia, mas eu achava que criptografia com message digests(MD5, HMAC, …) era irreversível…
Acho que https não vai dar pra usar… precisa de certificado digital?[/quote]
Eu tbem não sou um expert nisso, mas vc deixa aberto a forma que vc criptografa não pode facilitar a vida do intruso?

Quanto a https, vc pode gerar o seu prório certificado, a única coisa é que ele não será "confiável’ para o resto do mundo.

O que vc paga pra uma entidade certificadora, é a autenticidade de que o teu certificado é teu mesmo.

Valeu, vou dar uma olhada em https.
Mas, só por curiosidade, encontrei o seguinte no artigo do GUJ sobre Segurança no Java:

É exatamente isso que eu preciso. Pegar a senha digitada, gerar um hash MD5 e comparar com a que está armazenada no servidor para liberar ou não o acesso.

Qdo vc usa um algoritmo de criptografia com duas chaves (uma publica para criptografar e uma privada para descriptografar vc tem esse tipo de segurança) o algoritmo de criptografia utiliza essa chave publica e somente quem tiver a chave privada consegue descriptografar. Com um javascript vc poderia utilizar um algoritmo desse tipo para criptografar e apenas vc com a chave privada conseguiria descriptografar.

O problema dessa abordagem são os ataques conhecidos como “homem do meio” onde alguem pode simular a sua conexao e fazer uma requisição no server, ou então inteceptar a sua requisição com algum sniffer pergar a sua senha criptografada e se passar por vc. Para isso existem as autoridades certificadoras elas emitem um certificado que garante que vc que está tentando se conectar ao server é vc mesmo e além disso ela passa para o teu browser a chave publica que será utilizada para criptografar os seus dados.

[]'s

renato

Tinha um tempo em que o mail.yahoo.com tinha um JavaScript com MD5 para a senha, Dê uma olhada para ver se ainda trabalham dessa maneira (acho que não deve ser difícil ler o javascript que eles usam nessa página).
Se não for MD5, deve ser SHA-1 (que é mais forte, além de ter 20 bytes em vez de 16, foram descobertas recentemente - agosto do ano passado - algumas vulnerabilidades no MD5.)