Uma das funcoes mais basicas e comuns a varios sistemas e a criacao de contas com usuario e senha, que sao armazenados em um banco de dados, e ai que se encontra o problema, se seu banco de dados for invadido o invasor vai ter acesso as senhas dos usuarios. Existem algumas tecnicas para dificultar que invasor consiga visualizar a senha do usuario, uma delas e criptografar utilizando alguma criptografia conhecida como md5, sha1, sha256, etcComo funciona a criptografia Criptografias sao algoritmos que transformam os dados em uma serie de caracteres randomicos de tamanho fixo que nao podem ser revertidos, entao uma vez criptografado nao e possivel descriptografar (teoricamente, sera mostrado mais a frente que e possivel fazer isso) e apenas uma pequena modificacao no dado altera completamente o resultado da criptografia.md5("aaa") = 2cf24dba5fb0a30e26e83b2ac5b9ea93f8146f337a69afe7dd238f3364946366md5("aab") = c0e81794384491161f1777c232bc629e1b161e5c1fa7425e73043362938b9824Como gravar uma senha criptografadaO usuario cria uma contaA senha e criptografadaSenha criptografada e salva no bancoA senha sem criptografia nao deve nunca ser armazenadaComo validar a senha criptografadaO usuario loga no sistema fornece seu login/senhaA senha fornecida e criptografada.A senha do usuario fornecido e recuperada do banco de dadosE comparada a senha fornecida criptografada com a senha ja criptografada recuperada do bancoCaso ambas as senhas sejam identicas o usuario e autorizado a entrar no sistema, caso contrario retorne uma mensagem generica do tipo login/senha invalida, nunca fale se e o login ou a senha que esta invalido, isso previne que invasores tenham acesso aos usuarios validos do sistema.Criptografias seguras, so que naoMuitas vezes desenvolvedores acreditam que apenas criptografando um dado, principalmente utilizando criptografias mais fracas e antigas como md5 e sha estarao mantendo seus dados seguros, porem e possivel quebrar essas criptografias facilmente, existem tecnicas que tornam a tarefa de quebrar a senha facil para um hacker como lookup Table, reverse lookup table, rainbow table.Salgando as senhas e as tornando mais segurasSalt e uma tecnica que torna suas senhas mais seguras, consiste em gerar uma hash, concatenar com a senha e criptografar a string concatenada, abaixo sera mostrado os passos que devem ser feitos para adicionar salt a sua senha e a implementacao.Gravar o password1- Gere uma hash2- Concatene o password com a hash gerada e criptografe com uma criptografia forte como SHA2563- Salve o password criptografado e a hash gerada em colunas separadas no bancoValidando o password1- Recupere o password e a hash do banco.2- Concatene o password fornecido pelo usuario com a hash recuperada do banco e criptografe.3- Se a hash gerada for igual a hash recuperada do banco o password esta correto. Digamos que em alguma entidade voce tem um campo Hora, e por algum motivo voce vai utilizar ele como String em vez de Date ( @Temporal ), o campo vai precisar ser validado para nao ser inseridos horarios invalidos como 55:87, para resolver esse problema basta inserir uma anotacao hibernate e o problema esta resolvido.public class Pedido{ @Pattern(regex="^([0-1][0-9]|[2][0-3]):[0-5][0-9]$", message="Hora invalida") private String hora; //getters e setters} Nesse post vou mostrar como voce pode renderizar novos campos na tela de acordo com o botao Radio selecionado utilizando JSF e Seam.Vamos criar o