Dúvida Tela Login

2 respostas
GraGarcia

Boa noite galera!!!

Estou desinvolvendo uma tela de login. No cadastro do funcionário é onde realizo o cadastros dos dados(Usuário e Senha), até aqui tudo bem, ao executar meu sistema, a tela de login é mostrada, estou utilizando nela um JTextField(usuário) e um JPasswordField(senha), ao clicar no botao OK não esta retornando nada, mesmo com Usuário e Senha corretos. Estive verificando no banco que a senha é criptografada, estou precisando de uma ajuda para recuparar a senha no momento que busco ela no banco, por que da forma que esta me retornando de lá, a senha esta sendo sempre diferente, com isso não abre o sistema. Abaixo o código da minha tela de login. Se puderem me ajudar eu agradeço. Obrigado.
private void jbOkActionPerformed(java.awt.event.ActionEvent evt) {                                     
    eUsu = jtfUsuario.getText();
    eSenha = (jpfSenha.getPassword().toString());
    login();
}                                    
    public static void login() {
        try {
            sql = ("SELECT SENFUN " +
                    "FROM FUNCIONARIO " +
                    "WHERE USUFUN = '" + eUsu + "' " +
                      "AND STAFUN = 'A'");
            st = Conexao.getConexao().createStatement();
            rs = st.executeQuery(sql); 
            if(rs.next()){
                senha = (String) rs.getString("SENFUN");
                if(eSenha.equals(senha)){
                    JOptionPane.showMessageDialog(null, "abrir sistema");
                   TelaPrincipal.abrir(); 
                }  
            }else{
                JOptionPane.showMessageDialog(null, "Usuário/Senha inválido!");
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Erro ao tentar logar no sistema! Erro: "+ e); 
        }

    }

2 Respostas

washington.ab

Se a senha está armazenada no banco criptografada, vc tem dois caminhos a seguir:

Ou criptografa a senha digitada pelo usuário e compara as duas ou decriptografa a senha do banco e compara elas.

Nas duas situações, você precisa saber do algoritmo de criptografia usado.

GraGarcia
Venho através deste agradecer a atenção do washington.ab. Analisando melhor meu código percebi alguns erros, corrigindo cheguei ao seguinte:
public static void login(String eUsu, String eSenha) {
        try {
            sql = ("SELECT * " +
                    "FROM FUNCIONARIO " +
                     "WHERE USUFUN = '" + eUsu + 
                     "' AND SENFUN = '" + eSenha + "'");
            st = Conexao.getConexao().createStatement();
            rs = st.executeQuery(sql); 
            if(rs.next()){
                TelaPrincipal.abrir();
            }else{
                JOptionPane.showMessageDialog(null, "Login inválido");
            }
               
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Erro ao tentar logar no sistema! Erro: "+ e);
        }
    }

Diante disso, estou compartilhando meu código, me atendeu perfeitamente, esta ai, caso seja útil a alguem no futuro... Obrigado a todos

Criado 20 de maio de 2009
Ultima resposta 20 de mai. de 2009
Respostas 2
Participantes 2