[# Encriptación con Jasypt en Java ]

Hoy les voy a hablar de Jasypt (Java Simplified Encryption), es una librería Java que nos permite realizar cifrados con una facilidad extraordinaria sin necesidad de adquirir conocimientos de criptogafía. Algunas de sus características son:

  • Sigue los estándar RSA para criptografía basada en contraseña y proporciona técnicas de cifrado unidireccional y bidireccional.
  • Se puede usar con cualquier proveedor JCE.
  • Seguridad elevada para contraseñas de usuarios.
  • Varios tipos de cifrados (texto, binario, numerico).
  • Proporciona herramientas para cifrado sin ninguna configuración previa como así también una alta configuración para usuarios mas experimentados.
  • Integración con Hibernate 3 y Spring.
  • Y muchas cosas mas…

Para poder utilizar esta librería deberemos descargar la última versión, si bien hace tiempo que no se publica una versión nueva les aseguro que funciona muy bien. Si trabajan con versiones anteriores a Java 6 van a necestira agregar ICU 3.4.4 o mayor, hay otras dependencias que necesitaremos para utilizar Jasypt:

Estas dependencias las pueden encontrar en el archivo zip que descarguen de Jasypt en la carpeta “lib”. Como vamos a usar “strong encryption” vamos a necesitar descargar e instalar Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files. Estos archivos deben copiarse a la carpeta “security” de nuestro JRE. Si tenemos el JDK instalado la ruta seria:

<JDK_DIR>–>jre–>lib–>security

NOTA: si tenemos el JRE instalado también debemos copiar estos archivos a la carpeta “security” (<JRE_DIR>–>lib–>security) ya que si no cambiamos el runtime que utiliza la JVM una vez que ejecutemos un proyecto compilado que utilice “strong encryption” nos va a dar error debido a que la Maquina Virtual no utiliza el JRE que se encuentra dentro del JDK a menos que lo cambiemos nosotros.

Lo que sigue ahora es crear un proyecto nuevo en nuestro IDE de preferencia, Netbeans en mi caso, y agregamos los jars que necesitaremos para utilizar Jasypt (también pueden crear una librería) que son:

  • commons-codec-1.1.jar
  • commons-lang-2.1.jar
  • jasypt-1.5.jar

Una vez agregado todos los jars estamos en condiciones de poder realizar operaciones de encriptación y desencriptación.  Les dejo una clase que hice para que puedan observar lo fácil que es realizar estas operaciones:

package jasypt;
 
import org.jasypt.util.text.StrongTextEncryptor;
 
/**
*
* @author Richard07
*/
public class Main {
 
private static String encriptar(String cadena, String clave) {
     StrongTextEncryptor encriptador = new StrongTextEncryptor();
     encriptador.setPassword(clave);
     String cadenaEncriptada = encriptador.encrypt(cadena);
     return cadenaEncriptada;
}
 
private static String desencriptar(String cadena, String clave) {
     StrongTextEncryptor desencriptador = new StrongTextEncryptor();
     desencriptador.setPassword(clave);
     String cadenaDesencriptada = desencriptador.decrypt(cadena);
     return cadenaDesencriptada;
}
 
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
     String cadena = "Tu búsqueda ha finalizado";
     String clave = "www.IFconFig.com.ar";
     String cadenaEncriptada = encriptar(cadena, clave);
     System.out.println("Cadena Encriptada = " + cadenaEncriptada);
     System.out.println("Cadena Desencriptada = " + desencriptar(cadenaEncriptada, clave));
}
}

Bueno eso es todo espero que les sea de utilidad. Como experiencia propia les puedo decir que funciona de maravillas, no e profundizado mucho en la utilización pero si lo que necesitamos es encriptar algo rapido y fácil esta es nuestra opción.

Richard07

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

Este Post ha sido visto1056 veces

3 comentarios »

 
  • sonia dice:

    Hola, he seguido los pasos que indicas, pero me sale un error:
    Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine

  • sonia dice:

    espero puedas ayudarme porfa…es urgente!!!

  • richard07 dice:

    Hola, el error que te sale es porque te falta copiar los archivos que nombro al principio del post. Recorda que estos archivos debes copiarlos en la carpeta Security del directorio JRE ya sea que se encuentra dentro del directorio JDK y del directorio JRE.

 

Deja un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Acceder con Facebook