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:
- O sistema recebe a senha, cria um hash e armazena no banco de dados
- 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