Compara senha criptografada com o JPassword do Banco de dados

Senhores,

Através do JPasswordField (getPassword()) persisti no banco PostgreSQL (estou guardando em uma VARCHAR(30))e percebi que foi gravado de forma criptografada. Agora estou com um campo JPasswordField o qual desejo disponibilizar para o usuário digitar sua senha e comparar com o que está gravado no banco.
O que não estou conseguindo é criar um procedimento que compare estes valores.

char[] registro = campo.getPassword();
String senha = new String(registro);

if (senha.equals(usuario.getSenha))
    System.out.println("Senha correta !");
else
    System.out.println("Senha incorreta !");

// Embora a senha esteja sendo digitada corretamente o resultado não é igual ao que esta gravado no banco.
Devo armazenar a senha criptografada no PostgreSQL em uma varchar mesmo ?
Há como recuperar o valor do banco e descriptografar para aí sim comparar com o que foi digitado ?

Cara sinto te informar, mas o que você gravou no banco não foi o valor criptografado do texto que foi digitado, na verdade, o que você pegou foi o toString do array de char que é o retorno do método getPassword().

Uma opção é transformar o array em String assim: String text = String.copyValueOf(password);

Eu não manjo muito de swing mas…

Eu imagino (e pelos meus testes) que o JPasswordField, sendo um componente de tela, não teria a responsabilidade de criptografar a string digitada nele para vc,a responsabilidade dele é de apenas não mostrar essa string na tela, mas quando vc faz um getPassword, vc obteria a string que o cara digitou.
Quem seria o responsavel por criptografar isso é vc, então se esta gravando criptografado no banco, é vc que esta fazendo isso em algum lugar e não o JPasswordField.getPassword.

Sendo assim, quando o usuario se logar no seu sistema, vc vai pegar a senha que o cara digitou no login (dentro de um JPasswordField) e comparar a criptografia dessa senha com o que esta no seu banco.

Ou seja, caso vc grave no seu banco assim:

a leitura seria assim

Caso vc criptografa a senha usando java antes de gravar no banco, então vc tambem deve criptografar (da mesma forma) o que o cara digitou no login antes de buscar do banco (fazer a comparacao da senha digitada no login com a senha que esta no banco).

Soh uma observação, não use para isso um algoritmo que te permita descriptografar a senha.