Bom eu estou criptografando minha senha e login ao criar o usuario;
  public  boolean cadastrar(Usuario u, Matricula m) throws SQLException {  
        String geradoLogin = BCrypt.gensalt();
        String geradoSenha = BCrypt.gensalt();
        String senhaCrypt = BCrypt.hashpw(u.getSenha(), geradoSenha);
        String loginCrypt = BCrypt.hashpw(u.getLogin(), geradoLogin);  
        u.setLogin(loginCrypt);
        u.setSenha(senhaCrypt);
        PreparedStatement matricula = con.prepareStatement("INSERT INTO MATRICULA(numero_matricula, numero_computador) VALUES(?, ?)",PreparedStatement.RETURN_GENERATED_KEYS);
        matricula.setInt(1, m.getNumero_matricula());
        matricula.setInt(2, m.getNumero_computador());
        try {
        con.setAutoCommit(false);
        matricula.executeUpdate();
        ResultSet rs = matricula.getGeneratedKeys();
        rs.next();
        Long idGerado = rs.getLong(1);
        Sessao.getInstancia().getMatricula().setId_matricula(idGerado);
        String cadastrarx = "INSERT INTO USUARIO(idpermissao,idmatricula, login, senha, nome,online) VALUES("+u.isAdm()+","+idGerado+",?,?,?,0)";
        PreparedStatement cadastrar = con.prepareStatement(cadastrarx);
        cadastrar.setString(1, u.getLogin());
        cadastrar.setString(2,u.getSenha());
        cadastrar.setString(3,u.getNome());
        cadastrar.executeUpdate();
        con.commit();
        }catch(Exception e){
            Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, e);
            con.rollback();
            return false;
            } 
            return true;
        }
minha dúvida está em como eu conseguiria fazer a validação quando está sendo feito o login?
   public boolean validarSenha(Usuario u) {
        String sql = "SELECT * FROM usuario where login = ? and senha = ?";
        try {
            PreparedStatement stmt = con.prepareStatement(sql);
            stmt.setString(1, u.getLogin());
            stmt.setString(2, u.getSenha());
            ResultSet rs = stmt.executeQuery();
            if (rs.next()) {             
                Usuario usuarioLogado = new Usuario(rs.getLong("id_usuario"), rs.getInt("idpermissao"), rs.getString("login"), rs.getString("senha"),  rs.getString("nome"), rs.getBoolean("online"));
                Matricula matricula = new Matricula(rs.getLong("idmatricula"));
                aSessao.getInstancia().setUsuario(usuarioLogado);
                aSessao.getInstancia().setMatricula(matricula);  
                setOnline();
                stmt.close();
                rs.close();
                return true;
            }else{
            stmt.close();
            rs.close();
            return false;
            }
        } catch (SQLException ex) {
            Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return false;
    }
eu criei um metodo para descriptografar
mas ele só serviria para o usuario logado
como conseguir um metodo padrão para utilizar em todos os casos?