Anteriormente, habíamos visto un mecanismo para encriptar contraseñas y convertir el texto encriptado en una cadena almacenable en una base de datos o fichero sin problemas de codificación, mediante el API estandar de Java.
Veamos ahora cómo sería el proceso inverso:
String cadena = "WZMLNsMJeI2PDCPuWudVucLfRyQlffqA" +
"1yYKWLOLuCv2SzIcw0Aegh6w3o6FjQ3T";
String semilla = "0123456789";
String cadenaDesencriptada = null;
String tmp = new String( ( semilla.trim().concat("99999999") ).substring(0, 8 ) );
byte[] claveDesc = new BASE64Decoder().decodeBuffer( cadena );
SecretKeySpec desKey = new SecretKeySpec( tmp.getBytes(), "DES");
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, desKey);
cadenaDesencriptada = new String(cipher.doFinal(claveDesc));
Tras ejecutar el anterior código, obtendríamos la cadena original "No se a quien odio más, a Batman o a Guti" dentro de la variable cadenaDesencriptada.
Evidentemente, todo el código del ejemplo habrá que incluirlo dentro del correspondiente bloque try-catch y realizar la gestión de excepciones adecuada según nuestra aplicación.
Ver artículo: Encriptar una cadena en Java
No hay comentarios:
Publicar un comentario