Pessoal fiz a criptografia para gravar a senha no BD, agora preciso fazer a comparação para acessar o sistema, alguém sabe como posso fazer isso?
Criptografe a senha informada pelo usuário.
Ai entram algumas questões, como:
1 - Você usa SSL?
2 - Qual o tipo de criptografia está usando?
Fiz da seguinte forma para criptografar a senha…
[code]public class criptografaSenha {
public static String md5(String senha) {
String md5 = null;
if(null == senha) return null;
try{
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(senha.getBytes(), 0, senha.length());
md5 = new BigInteger(1,digest.digest()).toString(16);
//System.out.println(md5);
}catch(NoSuchAlgorithmException e){
e.printStackTrace();
}
return md5;
}[/code]
Então, use o mesmo método usando a senha informada pelo usuário no login, e compare a senha armazenada no banco de dados.
E você não me respondeu as minhas perguntas.
Qualquer coisa, só falar! Abração!
Eu não sei o que é SSL, e o tipo de criptografia é o MD5, estou tentando fazer da seguinte maneira, pegar a senha, criptografar ela e analisar no banco se ela consta, estar certa minha lógica?
Sua lógica eu não vi.
Faz um bom tempo que não mexo com criptografia, então não sei te falar se seu método tá gerando um md5 correto. Testou ele? Ele gera um md5 corretamente?
Compare a string de entrada com esse site aqui: http://www.adamek.biz/md5-generator.php e veja se os valores gerados batem.
Desculpe, só que ainda não entendi o que você quer.
Abraços.
eu estou criptografando a senha do usuário para gravar no banco.
estar criptografando certo dentro do banco.
aqui e o usuario e a senha que estar gravado no banco ------- as = “f970e2767d0cfe75876ea857f92e319b”
agora quero comparar essa senha com o que o usuário digitar para ele poder entrar no sistema.
Por favor, mostre o que já tem pronto, no seu servlet.
[code]protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//PEGANDO OS DADOS DO FORMULARIO HTML
String nome = request.getParameter("name_");
String senha = request.getParameter("password_");
//FAZENDO A CONEXAO COM O BD
conectaBanco carregaBD = new conectaBanco();
carregaBD.fazConexao();
//MANDADO OS DADOS PARA A CLASSE CADASTRO
cadastro cd = new cadastro();
cd.setUsuario(nome);
cd.setSenha(senha);
//aqui estou criptografando a senha
criptografaSenha.md5(cd.getSenha());
try{
//RECEBENDO A CONEXAO
Connection con = carregaBD.fazConexao();
//FAZENDO UM QUERY PARA INSERIR NO BD
String query = "insert into login(log_usuario,log_senha) values(?,?)";
PreparedStatement stmt = con.prepareStatement(query);
//MANDADO OS DADOS PARA O BANCO ATRAVES DA CLASSE CADASTRO, AQUI TBM EVITANDO DO SQL INJECTION
stmt.setString(1, cd.getUsuario());
stmt.setString(2, cd.getSenha());
//EXECUTANDO O QUERY
stmt.execute();
stmt.close();
System.out.println("Gravado com sucesso");
response.sendRedirect("index.jsp");
con.close();
}catch(Exception e){
e.printStackTrace();
}[/code]
[code]protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//PEGANDO OS DADOS DO FORMULARIO HTML
String nome = request.getParameter("name_");
String senha = request.getParameter("password_");
//FAZENDO A CONEXAO COM O BD
conectaBanco carregaBD = new conectaBanco();
carregaBD.fazConexao();
//MANDADO OS DADOS PARA A CLASSE CADASTRO
Usuario usuario = new Usuario();
usuario.setNome(nome);
usuario.setSenha(senha);
//aqui estou criptografando a senha
criptografaSenha.md5(usuario.getSenha());
try{
//RECEBENDO A CONEXAO
Connection con = carregaBD.fazConexao();
String query = "select * from login where log_usuario = ? and log_senha = ?";
PreparedStatement stmt = con.prepareStatement(query);
//MANDADO OS DADOS PARA O BANCO ATRAVES DA CLASSE CADASTRO, AQUI TBM EVITANDO DO SQL INJECTION
stmt.setString(1, usuario.getNome());
stmt.setString(2, criptografaSenha.md5(usuario.getSenha()));
//EXECUTANDO O QUERY
if (stmt.executeQuery() > 1) {
stmt.close();
response.sendRedirect("index.jsp");
con.close();
}
}catch(Exception e){
e.printStackTrace();
} [/code]
Fiz correndo, qualquer problema dá um toque.
PS: tem muita coisa errada ai, mas pra um primeiro projeto está bom. Se quiser umas dicas do que melhorar depois, só falar. Abração!