preciso gravar a senha de uma entidade com criptografia. A função é esta:
publicclassTransformaStringMD5{// Função para criar hash da senha informadapublicstaticStringmd5(Stringsenha){Stringsen="";MessageDigestmd=null;try{md=MessageDigest.getInstance("MD5");}catch(NoSuchAlgorithmExceptione){e.printStackTrace();}BigIntegerhash=newBigInteger(1,md.digest(senha.getBytes()));sen=hash.toString(16);returnsen;}
<h:outputLabelfor="password"value="* Senha "/><h:inputSecretid="password"validatorMessage="A senha deve ter no mínimo 6 caracteres!"value="#{pessoaFisicaFace.pessoaFisica.userLogin.password}"><f:validateLengthminimum="6"/></h:inputSecret>
Assim tá gravando do jeito que o usuário digita. Preciso fazer uma chamada parecida com essa:
Acho que a solução mais simples é você codificar a senha para MD5 antes de persisti-lo, ao invés de direto no inputSecret, na verdade acho que dessa forma que você postou não funcione mesmo. tente dessa forma:
//algo do tipopessoaFisica.setPassword(TransformaStringMD5.md5(pessoaFisica.getPassword));dao.save(pessoaFisica);
L
leonickel
tati.mat.moreira,
Voce pode montar a sua aplicação da seguinte forma:
no momento de salvar a sua entidade no banco de dados, no seu backing bean realize a encriptação da senha pegando o valor que o usuário digitou na tela;
se sua aplicação tiver módulo de edição, nao mostre a senha inteira dentro do campo, mostre alguma máscara ou algo do tipo apenas para nao apresentar o campo vazio, caso o usuário opte por trocar a senha, aí no seu backing bean vc gera a encriptação da nova senha, se ele nao trocar, use a mesma senha que vc tem(vc pode armazená-la num field hidden, por exemplo)…
nao sei c expliquei bem, mas eh isso q te aconselho!
qlq dúvida posta aí que tentamos ajudar!
T
tati.mat.moreira
leonickel:
tati.mat.moreira,
Voce pode montar a sua aplicação da seguinte forma:
- no momento de salvar a sua entidade no banco de dados, no seu backing bean realize a encriptação da senha pegando o valor que o usuário digitou na tela;
- se sua aplicação tiver módulo de edição, nao mostre a senha inteira dentro do campo, mostre alguma máscara ou algo do tipo apenas para nao apresentar o campo vazio, caso o usuário opte por trocar a senha, aí no seu backing bean vc gera a encriptação da nova senha, se ele nao trocar, use a mesma senha que vc tem(vc pode armazená-la num field hidden, por exemplo).......
nao sei c expliquei bem, mas eh isso q te aconselho!
Preciso que a senha do sistema seja criptografada, mas estou com a seguinte duvida:
Como eu faço para comparar a senha no momento do login se a mesma está criptografada?
ex: cadastrei usuario com a senha 123, a mesma virou zyx no banco de dados. Quando o usuario faz o login o sistema deve comprar se a senha digitada é igual a que está no banco de dados, mas no banco está diferente, pois foi criptograda.
Utilizo o firebird.
S
silvaesouza
Você irá criptografar a senha no momento do login e então comparar com a do banco pois o algoritmo do MD5 sempre gera a mesma criptografia.