Galera gostaria de saber como eu criptografo em MD5 em uma pagina .jsp. Para que eu possa mandar para o banco de dados.
Caso exista outros modos de criptografia eu aceito como sugestão…
OBS: Preciso criptografar antes de gravar no banco de dados.
Galera gostaria de saber como eu criptografo em MD5 em uma pagina .jsp. Para que eu possa mandar para o banco de dados.
Caso exista outros modos de criptografia eu aceito como sugestão…
OBS: Preciso criptografar antes de gravar no banco de dados.
MD5 não é um método de criptografia (ou seja, que lhe permita recuperar o dado original dada uma chave).
Ele é um método de "hashing" - é como se fosse um "noves fora" sofisticado.
De qualquer maneira, ele pode ser usado com senhas, como você mencionou.
Você pode fazer isso de duas maneiras diferentes:
Se for fazer em Java, veja o que você pode aproveitar do código abaixo.
import java.security.*;
public class PasswordMD5 {
public static void main(String[] args) {
try {
String password = PasswordMD5.toPassword ("NicoleKidman"); // a senha cadastrada
System.out.println ("password = " + password);
String password2 = PasswordMD5.toPassword ("NicoleKIdman"); // usuário digitou errado
System.out.println ("password2 = " + password2);
String password3 = PasswordMD5.toPassword ("NicoleKidman"); // usuário digitou certo
System.out.println ("password3 = " + password3);
if (!password.equals(password2)) {
// como a senha não bate...
System.out.println ("password2 eh uma senha incorreta");
}
if (password.equals(password3)) {
// como a senha bate...
System.out.println ("password3 eh uma senha correta");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static String bytesToHex (byte[] b) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < b.length; ++i) {
sb.append ((Integer.toHexString((b[i] & 0xFF) | 0x100)).substring(1,3));
}
return sb.toString();
}
public static String toPassword (String data) throws NoSuchAlgorithmException {
byte[] mybytes = data.getBytes();
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] md5digest = md5.digest (mybytes);
return bytesToHex (md5digest);
}
}
Quando você for definir o campo “senha” no seu banco de dados, reserve exatamente 32 caracteres, se for usar o MD5 codificado em hexadecimal, conforme eu mostrei no exemplo acima.
Existe outro método além do MD5 para se fazer em JSP sem ter que usar https…
o javascript existe alguma função que calcula o MD5 ou tenho que fazer a função…
Não é que o MD5 “requeira” https. É que quando você tem uma tela de login clássica, sem https, o POST trafega a senha “em claro” pela Internet; se você fizer isso em Javascript, em vez de Java, a página faz um “post” do MD5 em vez da senha “em claro”. Mas isso também não é totalmente seguro, tanto é que o Yahoo e o GMail, que usam esquemas semelhantes de MD5, chaveiam para um site seguro só para fazer o login, e depois voltam para um site “aberto”.
Para o cálculo do MD5 em Javascript, você pode tentar decifrar a página Javascript do Yahoo Mail, mas aviso que é um bocadinho complicada (tanto para economizar espaço, quanto para otimizar velocidade de execução).