Como fazer para a senha que meu usuário irá digitar apareça criptografada na tela

1 resposta
T

Ola pessual criei uma tela de login mas na hora que digito a senha não aparece criptografado o que o usuário digita, como devo fazer:

Esse é o código que criei:

package Cadastro;

import Utilitarios.conexao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;

public class Login extends javax.swing.JFrame {
  public static String Usuario = "";
     public static String Tp_Usuario = "";
     
     conexao con_login;
     String seta_look = "com.birosoft.liquid.LiquidLookAndFeel";
    /** Creates new form Login */
    public Login() {
        initComponents();
    con_login = new conexao();
        con_login.conecta();

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jButton_Entrar = new javax.swing.JButton();
        jButton_Cancelar = new javax.swing.JButton();
        jTextField_Usuario = new javax.swing.JTextField();
        jTextField_Senha = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));

        jLabel2.setText("Usuario");

        jLabel3.setText("Senha");

        jButton_Entrar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/login.png"))); // NOI18N
        jButton_Entrar.setText("Entrar");
        jButton_Entrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_EntrarActionPerformed(evt);
            }
        });

        jButton_Cancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Exit.png"))); // NOI18N
        jButton_Cancelar.setText("Cancelar");

        jTextField_Usuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField_UsuarioActionPerformed(evt);
            }
        });

        jTextField_Senha.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jTextField_Senha.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField_SenhaActionPerformed(evt);
            }
        });
        jTextField_Senha.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextField_SenhaFocusLost(evt);
            }
        });
        jTextField_Senha.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                jTextField_SenhaPropertyChange(evt);
            }
        });

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 12));
        jLabel4.setForeground(new java.awt.Color(255, 0, 0));

        jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/logo_manjare_tela_Login.png"))); // NOI18N

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTextField_Usuario, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addGap(18, 18, 18)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jButton_Entrar)
                                        .addGap(27, 27, 27)
                                        .addComponent(jButton_Cancelar))
                                    .addComponent(jTextField_Senha, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(34, 34, 34)
                        .addComponent(jLabel4))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(105, 105, 105)
                        .addComponent(jLabel5)))
                .addContainerGap(122, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel4)
                    .addComponent(jLabel5))
                .addGap(15, 15, 15)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jTextField_Usuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jTextField_Senha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton_Entrar)
                    .addComponent(jButton_Cancelar))
                .addContainerGap(22, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-511)/2, (screenSize.height-279)/2, 511, 279);
    }// </editor-fold>                        

    private void jButton_EntrarActionPerformed(java.awt.event.ActionEvent evt) {                                               


        try
        {
            String sql = "SELECT * FROM LOGIN WHERE USERNAME = '"+jTextField_Usuario.getText()+"' AND PASSWORD = '"+jTextField_Senha.getText()+"'";
            con_login.executeSQL(sql);

            if (con_login.resultset.first())
            {
                Usuario = con_login.resultset.getString("Username");
                Tp_Usuario = con_login.resultset.getString("Tipo_Acesso");
                JOptionPane.showMessageDialog(null, "Bem Vindo !  "+ Usuario);
                new TELA_PRINCIPAL().show();
                dispose();
            }
            else
            {
                JOptionPane.showMessageDialog(null, "Usuário ou Senha não Cadastrado ");
            }

        }
        catch (SQLException erro)
        {
            JOptionPane.showMessageDialog(null, "Erro de SQL "+ erro);
        }
    }                                              

    private void jTextField_UsuarioActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
    }                                                  

    private void jTextField_SenhaActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        jButton_Entrar.setFocusable(rootPaneCheckingEnabled);
    }                                                

    private void jTextField_SenhaFocusLost(java.awt.event.FocusEvent evt) {                                           
        jButton_Entrar.setFocusable(rootPaneCheckingEnabled);
    }                                          

    private void jTextField_SenhaPropertyChange(java.beans.PropertyChangeEvent evt) {                                                
         nextFocus();
    }                                               

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Login().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton_Cancelar;
    private javax.swing.JButton jButton_Entrar;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField_Senha;
    private javax.swing.JTextField jTextField_Usuario;
    // End of variables declaration                   

     public void lookandfeel()
    {
         try
        {
            UIManager.setLookAndFeel(seta_look);
            //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
            //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
            //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            SwingUtilities.updateComponentTreeUI(this);
        }
        catch(Exception erro)
        {
            JOptionPane.showMessageDialog(null,erro);
        }
    }




}

1 Resposta

davidbuzatto

Use um JPasswordField. A senha não fica criptografada, mas sim escondida.
Para obter o valor do campo faça

String senha = String.valueOf( seuPasswordField.getPassword() );

O método getPassword() retorna um array de char, por isso a necessidade de dar um String.valueOf. Vc poderia fazer também:

String senha = new String( seuPasswordField.getPassword() );

[]´s

Criado 25 de dezembro de 2009
Ultima resposta 25 de dez. de 2009
Respostas 1
Participantes 2