Login Java web com MySQL com criptografia MD5
Publicado por Adriano Silva (última atualização em 29/05/2015)
[ Hits: 6.707 ]
Homepage: https://www.adrianosilvapereira.com.br/
Script de login com criptografia MD5 usando o banco de dados MySQL.
/* Arquivo Auth.java */
package br.ueg.posse.p2.notasfiscais.auth;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import br.ueg.posse.p2.notasfiscais.criptografia.Criptografia;
import br.ueg.posse.p2.notasfiscais.dao.PrestadorDAO;
import br.ueg.posse.p2.notasfiscais.dao.UsuarioDAO;
import br.ueg.posse.p2.notasfiscais.modelo.Prestador;
import br.ueg.posse.p2.notasfiscais.modelo.Usuario;
@WebServlet("/Auth")
public class Auth extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
boolean validacao = false;
PrintWriter out = response.getWriter();
HttpSession sessao = request.getSession();
sessao.setAttribute("idioma", "pt_BR");
try {
UsuarioDAO dao = new UsuarioDAO();
List<Usuario> usuariosCadastrados = dao.lista();
String loginS = request.getParameter("login");
String senhaS = request.getParameter("senha");
String cripto = Criptografia.criptografar(senhaS);
System.out.println(senhaS);
senhaS = cripto;
for (Usuario usuario : usuariosCadastrados) {
String loginC = usuario.getLogin();
String senhaC = usuario.getSenha();
System.out.println("Senha do banco........:" + senhaC);
System.out.println("Senha do Formulario...:" + senhaS);
if (loginS.equals(loginC) && senhaS.equals(senhaC)) {
validacao = true;
}
if (validacao == true) {
sessao = request.getSession(true);
sessao.setAttribute("login", loginS);
sessao.setAttribute("nome", "Administrador do Sistema");
sessao.setMaxInactiveInterval(60 * 10);
response.sendRedirect("index.html");
}
else {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<style>");
out.println("body{font-family: comic sans ms;color:blue;class ='navbar-brand'}");
out.println("</style>");
out.println("</head>");
out.println("<body>");
out.println("<h2>Acesso negado<br></h2>");
out.println("<a href='login.html'><input type='button' value='Va para o Inicio' ></a>");
out.println("</body>");
out.println("</html>");
}
}
}catch (Exception e) {
// TODO: handle exception
}
}
}
/* Arquivo Criptografia.java */
package br.ueg.posse.p2.notasfiscais.criptografia;
import java.security.*;
public class Criptografia {
private static MessageDigest md = null;
static{
try{
md = MessageDigest.getInstance("MD5");
}
catch(NoSuchAlgorithmException ex){
ex.printStackTrace();
}
}
private static char[] hexCodes(byte[] text) {
char[] hexOutput = new char[text.length * 2];
String hexString;
for (int i = 0; i < text.length; i++) {
hexString = "00" + Integer.toHexString(text[i]);
hexString.toUpperCase().getChars(hexString.length() - 2,
hexString.length(), hexOutput, i * 2);
}
return hexOutput;
}
public static String criptografar(String pwd) {
if (md != null) {
return new String(hexCodes(md.digest(pwd.getBytes())));
}
return null;
}
}
/* Arquivo UsuarioDAO.java */
package br.ueg.posse.p2.notasfiscais.dao;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import br.ueg.posse.p2.notasfiscais.db.Database;
import br.ueg.posse.p2.notasfiscais.modelo.Usuario;
public class UsuarioDAO {
Connection conexao = null;
public UsuarioDAO() throws SQLException{
conexao = Database.getConnection();
}
public void gravar(Usuario usuario) {
try {
String sql = "insert into usuario(login,senha,nome)values(?,?,?)";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, usuario.getLogin());
stmt.setString(2, usuario.getSenha());
stmt.setString(3, usuario.getNome());
stmt.execute();
stmt.close();
conexao.close();
} catch (SQLException e) {
System.out.println("nao foi possivel inserir os dados:\n"+e);
}
}
public List<Usuario> lista() throws SQLException{
List<Usuario> Usuarios = new ArrayList<Usuario>();
String sql = "select * from usuario";
try(PreparedStatement stmt = conexao.prepareStatement(sql)){
stmt.execute();
ResultSet rs = stmt.getResultSet();
while (rs.next()){
Usuario usuario = new Usuario();
usuario.setId(rs.getInt("id"));
usuario.setLogin(rs.getString("login"));
usuario.setSenha(rs.getString("senha"));
usuario.setNome(rs.getString("nome"));
Usuarios.add(usuario);
}
return Usuarios;
}
}
}
/* Arquivo Usuario.java */
package br.ueg.posse.p2.notasfiscais.modelo;
public class Usuario {
private int id;
private String login;
private String senha;
private String nome;
public Usuario() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
/* Arquivo Database.java */
package br.ueg.posse.p2.notasfiscais.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Database {
public static Connection getConnection() throws SQLException{
String url = "jdbc:mysql://127.0.0.1/notasfiscais?user=root&password=root";
Connection conexao = DriverManager.getConnection(url);
System.out.println("Conectado.");
return conexao;
}
}
/* Arquivo ServletUsuario.java */
package br.ueg.posse.p2.notasfiscais.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.ueg.posse.p2.notasfiscais.criptografia.Criptografia;
import br.ueg.posse.p2.notasfiscais.dao.UsuarioDAO;
import br.ueg.posse.p2.notasfiscais.modelo.Usuario;
/**
* Servlet implementation class ServletUsuario
*/
@WebServlet({ "/ServletUsuario", "/usuario" })
public class ServletUsuario extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String login = request.getParameter("login");
String senha = request.getParameter("senha");
String nome = request.getParameter("nome");
String cripto = Criptografia.criptografar(senha);
senha = cripto;
System.out.println(senha);
//Gravar no Banco
Usuario usuario = new Usuario();
usuario.setLogin(login);
usuario.setSenha(senha);
usuario.setNome(nome);
try{
UsuarioDAO dao = new UsuarioDAO();
dao.gravar(usuario);
}catch (SQLException e){
System.out.println("Ocorreu um erro"+ e);
}
}
}
JCriptoCesar, a cifra de Cesar em Java
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Alguém executou um rm e quase mata a Pixar! (0)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (3)









