Utilizando MD5 com java

Caros amigos,
Esta rotina transforma uma String em uma cadeia de 32 caracteres (um hash)
Ela é normalmente utilizada para criptografar senha de usuários, funcionando da seguinte maneira:

  1. O sistema recebe a senha, cria um hash e armazena no banco de dados
  2. Para efetuar o login o sistema recebe a senha, passa pela mesma função (criando outro hash)
    e compara com o que está na base de dados.
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.swing.JOptionPane;

public class principal {
	
	//Função para criar hash da senha informada
	public static String md5(String senha){
		String sen = "";
		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance("MD5");
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		BigInteger hash = new BigInteger(1, md.digest(senha.getBytes()));
		sen = hash.toString(16);			
		return sen;
	}
	
	public static void main(String[] args) {
		
		String senha = JOptionPane.showInputDialog("Digite uma senha:");
		String saida = "Entrada: " + senha + "\nSenha com MD5: " + md5(senha);

		JOptionPane.showConfirmDialog(null,saida, "Resultado", JOptionPane.CLOSED_OPTION);    
	}
}

Do jeito que está acima é somente ctrl-C ctrl_V dentro de um projeto que vai funcionar sem problemas…

Sempre às ordens,
Wellington Marinheiro

Vou te dar uma sugestão, utilize o SHA ao invés do MD5 que ele é um pouco mais robusto. Também há uma classe da API padrão chamada Adler32 que calcula CRC (hash) de conteúdos e pode ser usada da mesma maneira. T+