Como se mencionó en un post anterior, en ocasiones
es necesario cifrar textos para proteger información, por ejemplo las claves de
usuario que se almacenan en una tabla, de forma que si alguien tuviera acceso a
esos datos no pueda visualizar la información original.
Para este ejemplo se crea una nueva clase llamada
cifrar.java, que permitirá cifrar cualquier texto que reciba utilizando el
algoritmo MD5 o SHA1.
public class cifrar {
private String getCifrado(String texto, String hashType) {
try {
java.security.MessageDigest md = java.security.MessageDigest.getInstance(hashType);
byte[] array = md.digest(texto.getBytes());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
} catch
(java.security.NoSuchAlgorithmException e) {
System.err.println("Error "+e.getMessage());
}
return
"";
}
public String md5(String texto) {
return getCifrado(texto,
"MD5");
}
public String sha1(String texto) {
return getCifrado(texto,
"SHA1");
}
Una vez que se creó la clase solo basta con crear un objeto de la misma para poder hacer uso de los métodos md5 o sha1 para cifrar cualquier texto dado, tal como se ve en el siguiente ejemplo
cifrar
objCifrar = new cifrar();
String
texto="hola";
System.out.println("Texto 'hola' cifrado con MD5
"+objCifrar.md5(texto));
System.out.println("Texto 'hola' cifrado con SHA1 "+objCifrar.sha1(texto));
Y el resultado de ejecutar este código es:
Texto 'hola' cifrado con MD5 4d186321c1a7f0f354b297e8914ab240
Texto 'hola' cifrado con SHA1 99800b85d3383e3a2fb45eb7d0066a4879a9dad0
Comentarios