Criptografando Senhas com MD5

Projeto para Criptografar senhas de Usuários utilizando as bibliotecas do algoritmo MD5 (Message-Digest algorithm 5) e chave de segurança.

O MD5 é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, usado por softwares com protocolo ponto-a-ponto (P2P), verificação de integridade e logins.

Classe Usuário...

package entity;

public class Usuario {	
	
	private Integer codigo;
    private String  nome;
    private String  email;
    private String  senha;
    private String  perfil;
   
    
	public Usuario() {
	}
	
	public Usuario(Integer codigo, String nome, String email, String senha, String perfil) {
		super();
		this.codigo = codigo;
		this.nome = nome;
		this.email = email;
		this.senha = senha;
		this.perfil = perfil;
	}

	@Override
	public String toString() {
		return "Usuario [codigo=" + codigo + ", nome=" + nome + ", email=" + email + ", senha=" + senha + ", perfil=" + perfil + "]";
	}

	public Integer getCodigo() {
		return codigo;
	}
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public String getPerfil() {
		return perfil;
	}
	public void setPerfil(String perfil) {
		this.perfil = perfil;
	}
	
	
	public static void main(String[] args) {		
		Usuario u = new Usuario();
		        u.setCodigo(10);
		        u.setNome("jose");
		        u.setEmail("jose@gmail.com"); //encapsulei 3 valores
		System.out.println("Nome: " + u.getNome() + ", " + "Email: " + u.getEmail());
		
                Usuario u2 = new Usuario(100,"bruno","bruno@gmail","123",null);
                        u2.setPerfil("usu");
          
        System.out.println("\nUsuário com senha sem criptografar: " + u2);
	}
}

No console imprime...

Nome: jose, Email: jose@gmail.com

Usuário com senha sem criptografar: Usuario [codigo=100, nome=bruno, email=bruno@gmail, senha=123, perfil=usu]
    

Classe CriptografaUsuario...

package control;

import org.jcommon.encryption.SimpleMD5;
import entity.Usuario;

public class CriptografaUsuario {

	public void criptografia(Usuario u){
		SimpleMD5 md5 = new SimpleMD5(u.getSenha(), "cotiinfromatica@123$#@..567abc_");
		 u.setSenha(md5.toHexString());
	}
}    

Classe Main para testar...

package main;

import control.CriptografaUsuario;
import entity.Usuario;

public class Main {

	public static void main(String[] args) {
	
		Usuario u = new Usuario();
		CriptografaUsuario cript = new CriptografaUsuario();
		
 		try {
			 u.setCodigo(101);
			 u.setNome("Rafael");
			 u.setSenha("123");
			 u.setEmail("rafael@gmail.com");
			 u.setPerfil("adm");
			 cript.criptografia(u);
       
                System.out.println(
                            "Nome: " + u.getNome() + ", "  +
                            "Senha Criptografada: " + u.getSenha()
                            );
		} catch (Exception e) {
			e.printStackTrace(); 
		}
	}
}    

No console imprime o resultado...

Nome: Rafael, 
Senha Criptografada: 7d047134322c8f335eb278abc4c03fda