Ir al contenido principal

Cifrar texto a MD5 y SHA1 desde Java

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

Entradas más populares de este blog

Creación de Librerías en Java

Creación de Librerías en Java   Las librerías son un conjunto de clases con funciones especificas que ayudan a desarrollar aplicaciones más complejas de una forma sencilla, por ejemplo si se requiere realizar cálculos matemáticos y emplear el funciones como el Seno o Coseno, simplemente se importa la librería Math y se utilizan estos métodos, en lugar de desarrollarlos. Java cuenta con una extensa lista de librerías disponibles dentro del JDK o desarrolladas por terceros, pero también existe la posibilidad de desarrollar librerías propias para reutilizar de forma más eficiente el código, por ejemplo si se trabaja de forma cotidiana con conexión a base de datos, se pueden desarrollar métodos genéricos que realicen la conexión, que validen las consultas, etc. de forma que su uso reduzca el tiempo de desarrollo e incremente la productividad. Para este tutorial se van a crear dos proyectos en NetBeans, uno sera la librería y el otro proyecto hará uso de esta.

Elegir la clase a ejecutar en NetBeans, MVC

Elegir la clase a ejecutar en NetBeans Para que java pueda ejecutar una aplicación esta debe tener un método conocido como punto de entrada, este método tiene la sintaxis: void static void main(String [] sax){ //código } En ocasiones en una aplicación tiene varios puntos de entrada, que pueden servir para probar diferentes partes de la aplicación sin tener que recorrer o pasar por varias clases, para esto se puede seleccionar directamente en las propiedades del proyecto que clase será la principal.

Librerías JOptionPane para generar ventanas de entrada y salida de datos

Para poder introducir datos leídos desde el teclado existen varias formas, una de ellas hace uso de la librería javax.swing.JOptionPane que entre otras opciones permite mostrar ventanas para introducir datos, y ventanas para mostrar valores. Con el uso de esta librería se crean pequeñas interfaces definidas por el sistema, pero ya se hace uso de las librerías graficas swing, que se verán más adelante.