Olá a todos!
Quando se trabalha com sistemas com múltiplos usuários é interessante criptografar as senhas do usuários para uma maior confiabilidade e descrição dessas senhas, para isso uma boa opção é o MD5.
Uma senha criptografada com MD5 não pode ser novamente transformada no texto de origem, portanto a comparação deve ser feita por duas strings criptografadas.
Abaixo segue uma classe que vai ajudar na criação de MD5.
import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class ConvertPasswordToMD5 { public static String convertPasswordToMD5(String password) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); BigInteger hash = new BigInteger(1, md.digest(password.getBytes())); return String.format("%32x";, hash); } }
Bom, abaixo segue o código de teste desta classe que criptografa as senhas em MD5.
import java.security.NoSuchAlgorithmException; public class Test { public static void main(String[] args) { String password1 = "Senha1"; String password2 = "Senha2"; try { String password1MD5 = ConvertPasswordToMD5.convertPasswordToMD5(password1); String password2MD5 = ConvertPasswordToMD5.convertPasswordToMD5(password2); String passwordCompareMD5 = ConvertPasswordToMD5.convertPasswordToMD5(password1); System.out.println("Password1: " + password1MD5); System.out.println("Password2: " + password2MD5); System.out.println("passwordCompareMD5: " + passwordCompareMD5); if (password1MD5.equals(passwordCompareMD5)) { System.out.println("Compare OK"); } else { System.out.println("Compare NOK"); } if (password2MD5.equals(passwordCompareMD5)) { System.out.println("Compare OK"); } else { System.out.println("Compare NOK"); } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } }
As saídas deste teste são:
Password1: be6b9084a5dcdb09af8f433557a2119c
Password2: 14621de3463eb7e1b3606d5514bbf800
passwordCompareMD5: be6b9084a5dcdb09af8f433557a2119c
Compare OK
Compare NOK
Em outro post será abordada a criptografia feita com RSA, onde é possível criptografar e descriptografar.
Até mais.
Otimo, parabéns, exatamente o que eu precisava!
Olá Danilo
Poderia postar um exemplo de criptografia utilizando RSA?
Parabéns pelo blog.