Olá tenho essa Classe Chamada [color=red]ClassLogin[/color] ela esta ligada ao banco de dados MYSQL queria[color=green] criptografar a senha[/color] mas não sei como fazer ja que sou iniciante no assunto peço a ajuda de vcs muito Obrigado desde já.
import com.mysql.jdbc.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class ClassLogin {
//========================================================
// Conexao com o Banco
//========================================================
ClassConecta conexao = new ClassConecta();
public void logar (JFrame frame ,String login, String senha, String nivel) throws SQLException {
String sql = "select login, senha, nivel from flogon where login = ? and senha = ? and nivel = ?";
PreparedStatement stmt = (PreparedStatement) this.conexao.conecta().prepareStatement(sql);
stmt.setString(1, login);
stmt.setString(2, senha);
stmt.setString(3, nivel);
ResultSet rs = stmt.executeQuery();
if (rs.next()){
//========================================================
// Abre a tela do administrador
//========================================================
if(nivel.equals("ADMINISTRADOR"))
{ System.out.println("Bem-vindo administrador");
frame.setVisible(false);
new FCadUser().setVisible(true);
}
//========================================================
//Senão abre a tela de usuário
//========================================================
else if (nivel.equals("FUNCIONARIO")){
System.out.println("Bem-vindo funcionario");
new FPrincipal().setVisible(true); }
}
//========================================================
// Caso login esteja incorreto, mostra essa frase
//========================================================
else{
JOptionPane.showMessageDialog(null, "Login Incorreto.\n" +
"Tente novamente.\n","ALERTA", JOptionPane.ERROR_MESSAGE);}
rs.close();
stmt.close();
}
}
//========================================================
//Fim da Classe
//========================================================
E esse aqui é o código do[color=red] botão do JFrame[/color]
luxu, Beleza esse código que vc me passou ta legal mostra a senha norma e criptografada na aplicação desktop, mas o que eu realmente quero é salvar essa senha criptografada dentro do banco de dados MYSQl a senha esta sendo salva na coluna na tabela , mas eu quero salva-la criptografada e fazer a autenticação com ela criptografada mesmo, Me ajude por favor. Grato !
[quote=Oziel Morais]Eu axo também que falta algo aqui, podem me tirar essa dúvida
String sql = "select login, senha, nivel from flogon where login = ? and senha = ? and nivel = ?";
[/quote]
Para o método “logar”, você passará a senha já criptografada em MD5 (como os colegas explicaram acima), que é o formato (HASH) que está salvo no banco.
Ou seja, para esse método não passa nada.
Basicamente é assim: você não salvará a senha diretamente no banco, você colocará ela em um hash, neste caso, o MD5.
Ele é um algoritmo unidirecional, ou seja, não é possível desencriptar.
Desse modo, é feito assim: sua aplicação encriptará a senha digitada, e liberará o login se o MD5 da senha digitada bater com o MD5 que foi salvo no banco.