Como gerar Algoritmo Hash no cliente?

E ai pessoal, beleza??

Estou a desenvolver um sistema usando STRUTS 2 para o meu projeto de licenciatura e preciso de uma ajudinha…

Seguinte:

Preciso implementar a parte do login usando algoritmo de autenticacao, no meu caso vou usar SHA - 256. Entao eu quero que logo que o cliente digitar a senha, o sistema deve gerar o Hash da senha no cliente para em seguida enviar o Hash para o servidor.
Preciso usar uma hash para evitar enviar a senha em Clear Text para servidor…

valew.

Não use hash no cliente.

Pense comigo: qualquer tecnologia que alguém usar para ver a senha em texto puro, fará com que ela veja o hash.
Acaba dando no mesmo.

Você pode usar ssl para aumentar a segurança dessa comunicação.

[quote]Pense comigo: qualquer tecnologia que alguém usar para ver a senha em texto puro, fará com que ela veja o hash.
Acaba dando no mesmo.[/quote]
Concordo plenamente, mas se eu usar um Salt no cliente, onde cada Salt só e usado uma unica vez? ou seja sempre que o cliente efetuar login, o servidor vai enviar um Salt com alguns bytes aleatório para o cliente, logo se o cliente efetuar o login terá que ser SALT+SENHA.

Por exemplo o servidor envia um Salt de “ADC” para o cliente e senha do utilizador “1234”, então sera “SALT+SENHA” = ADC1234 e em seguida gero a hash da combinação do SALT com a SENHA e na proxima vez que cliente efetuar o login, sera gerado um Salt diferente e assim em diante…

Pensei na possibilidade de usar ssl, mas não tenho permissões para entrar na sala de servidores e configurar para ssl.

Mas o servidor precisa fazer a mesma conta para bater seu hash. Ou seja, pelo seu exemplo ele precisaria saber sua senha em texto pura 1234 para concatenar com o salt que ele gerou.

Recomendo que consiga essa permissão então.

Ser criativo nessas horas pode criar um risco maior de segurança do que não ter segurança alguma.

Isso realmente dificulta um sniffing, mas não um man in the middle bem feito.

Realmente a melhor e mais fácil opção é um SSL …

O Yahoo Mail gerava um hash no cliente (com salting) na hora do login, mas ele também usava SSL. Não sei agora como ele faz.

Hoje em dia não sei mais o que ele faz. Mas ele tem de usar SSL de qualquer maneira.

Aliás, com o vazamento dos milhões de hashes do Linkedin e de outros 2 sites (que eu não uso e nem consigo lembrar o nome) estão saindo vários artigons sobre o processo de login.

Esse aqui é de hoje no Dzone, achei que tem boas dicas.

http://java.dzone.com/articles/secure-password-storage-lots

Valew pessoal, Entao vou pelo caminho de SSL…