Login Java web com MySQL com criptografia MD5
Publicado por Adriano Silva (última atualização em 29/05/2015)
[ Hits: 6.734 ]
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.
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (11)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









