Métodos para Encriptar y Desencriptar en Java

En esta oportunidad presentamos 2 métodos para proteger los datos en sus desarrollos. Los métodos contienen una llave escrita en duro “qualityinfosolutions” que es la que nos permite Encriptar y luego Desencriptar nuestros datos, si las llaves no coinciden no podrán utilizar ambos métodos por lo que es recomendable manejar esta llave como una variable global.
Librerias:

import java.security.MessageDigest;
import java.util.Arrays;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

Descargar commons-codec-1.9.jar  

Commons-codec (257.8 KiB)

Método de Encriptación

Forma de uso suponiendo que fue creada en la clase utilidades como se muestra a continuación:

Clase AppUtilidades

Clase Utilidades

Publicado en Java Etiquetado con: , ,
27 Comentarios en “Métodos para Encriptar y Desencriptar en Java
  1. Daniel García Alvarado dice:

    Que tal, fue de mucha ayuda el post, por si alguien lo necesita en Swift3 te dejo el enlace

    https://github.com/danigarciaalva/CipherAlgorithm

  2. Nadia dice:

    Hola, yo tengo un problema, estoy utilizando una BD que ya está previamente hecha en postgresql y no la puedo modificar, entonces en esa base existe la contraseña cifrada con la funcion md5 propia de postgresql pero al aplicar el cifrado en java, no coincide con la almacenada en postgreql, alguien sabe como igualar ese mismo cifrado de postgres en java?

    • Angel Rodríguez dice:

      Sugiero que ejecutes la sentencia tal cual la ejecutas en Postgressql, sin hace uso de algun método creado en Java, al hacer el .executeQuery(“insert into….”); da la instrucción como si estuvieras en el editor de Postgresql.

  3. Gustavo Huerta dice:

    No se que pasa me tira el siguiente error
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:989)
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:845)
    at com.sun.crypto.provider.DESedeCipher.engineDoFinal(DESedeCipher.java:294)
    at javax.crypto.Cipher.doFinal(Cipher.java:2165)
    at Componentes.EncryptionMD5.Desencriptar(EncryptionMD5.java:75)
    at Ventanas.EditarPerfilTecnico.(EditarPerfilTecnico.java:53)
    at Ventanas.PerfilTecnico.jMenuItem1ActionPerformed(PerfilTecnico.java:394)
    at Ventanas.PerfilTecnico.access$300(PerfilTecnico.java:19)
    at Ventanas.PerfilTecnico$4.actionPerformed(PerfilTecnico.java:277)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    Hay conection
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*