· 4 years ago · Apr 14, 2021, 06:22 PM
1/*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6package blutesting;
7
8import java.io.File;
9import java.io.IOException;
10import java.io.UnsupportedEncodingException;
11import java.security.GeneralSecurityException;
12import java.security.PrivateKey;
13import java.util.logging.Level;
14import java.util.logging.Logger;
15import javax.crypto.Cipher;
16import javax.crypto.SecretKey;
17import javax.crypto.spec.SecretKeySpec;
18import org.apache.commons.io.FileUtils;
19import org.apache.commons.ssl.Base64;
20import org.apache.commons.ssl.PKCS8Key;
21
22
23/**
24 *
25 * @author antonio
26 */
27public class BluTesting {
28
29 /**
30 * @param args the command line arguments
31 */
32 public static void main(String[] args) {
33
34 try {
35 // TODO code application logic here
36 //String cadenaLlave = args[1];
37 String cadenaLlave = "WF/0gYGe/YsjIjz3P/mQAKnJd0a/w4fUgREEdqNT/xQlERYkjzaxoO+IdmFaULi/Ja7/2iLA/15foXXpAZkA4P08ppMhPv7htIWK6EF1zVOdmPMpa17QMMg8dM/jo7lInThYGFuQjdtZwQ/Ab1H9MSa2FmHZusYJt/AWJqIH5Qd8MgnPBHs4N7cWvwQ+SicnvbPpRpW0tD0mN1BwsuZMIQ0G5QimQ6tS5vgwgCgMnmYeDJ7kLjfvO6ZZzM5/mQBJtmEbLp8rQEB7B5PtB7e+GYT7Mza6j/s5szd0E/rGd6GgoNjjDSPXS09tLjUe85DOetv/hbDB6BOVXPk5IjGDNA==";
38 //String cadenaLlave = args[0].toString();
39 String pass = "7h8j9k0l!!@@";
40 String cadenaResponse = "oLp7AGFZbxucXBgRReuXuNtYcanFPHrKBWok2drbSAM=";
41 //String cadenaResponse = args[0];
42 String llaveCadena = "-----BEGIN PRIVATE KEY-----\n" +
43"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrOEp33md0qqPQ\n" +
44"LLPkI6iE3frRuQN3y53w1KELn1ldZOCXjrImPczF4NhpOLJAW/XMxSxFPppz8Nh9\n" +
45"O5w2WoNUaI620BzCKa9kC0wXbMdTPgLnutapsZd3ZE+MEqzJs6St4Z6ilgFNbwnW\n" +
46"g0H4pQtwFacfIUNx3u/NOzGcp+81d4CkiDwm2V9XR93g+5e8Ultc9i67Vlyvm+kh\n" +
47"JANRrtywUcWgydg2uObJMhByqeEoaaDrY7SEMqFV8LOLvBowBgDNztaWdboZgkF6\n" +
48"Mp7uoTWGB4JlO7emWyQaRP9Y3wSdf+5YxQDitBoaZz8+5Z6tNLnIkHo0HpdlrOGO\n" +
49"spRSGf/xAgMBAAECggEAXvIqKWqFSCbQDEKdxucXLgbCbcYA7E9XWBMw8vb8YVPt\n" +
50"T13r4FTo1tomZ8Lu5c2Y8mJseEGM+LoX8uo5Z9KtfQM2EJ47NFhVUE8LdPn3VmvO\n" +
51"xJ3RJ+y5J5XSnsREWN1rdpjklRhFxKDMfc3vqWgsfY0kTZjug5iytcYbbtmZRrYD\n" +
52"xIcI3lv7RohdUWbps7HddyvBmPYxIRKQC9el4NzoQYRyeUt8/5Wlor/jVVcQ0ssE\n" +
53"L1kMq32z2kyNOwOui+MMCiyoGfZ1sgRKTx6vpy5AakmArz03Kw+HnwG4axid0vfO\n" +
54"H0G88btNppc37UxXrRBXtnllL0K48xKwIj/6e1TioQKBgQDTmLPwqFXsASNOt8Jm\n" +
55"GqQuHtSaoHLfblaukdTr8kaEd7rH9pnvINWm+WMSqXbaWejJhXbs6xrAHbcBz21y\n" +
56"pyNf41a8vW5KCOKjBs5PwE/tUho1iZxm2jKLuq61tr2Hbj2SSORrEYeFJhZ0FxCh\n" +
57"Vc0lbPXhFiwmuiCZNhhwSiTLpQKBgQDPJn4w4rCiccXNQ6bOzBqCGpPbq0D3DeDQ\n" +
58"HoT+075x5rQDVIQWJYynScLN56twV/4xZGUJuZ7oTlr5bzWNUbtrzuStnc/G5wGr\n" +
59"+tECg0yfI3GyLSNvAEQ+811f5rvkJTscSl+MXhWbqUK6zzbTmgri9xqJgJ9qccnF\n" +
60"F5VcEMDhXQKBgGAVt6BQ0LOa0K2uRFiZQHSxC1osAf3z3Ojo0AdUvTDqLacgFEbC\n" +
61"YkKwfIy853u/2DWqpZZwLHWRCMmJp+mofCfO1FRgsPRtlHzzWjxc1+6smbo2Aw+x\n" +
62"hcJtw2hA00/sf4kuEIuOKjwMT6Xn02Vv0Phtwjm0F9h+LM9mATL8eDkBAoGAIx6s\n" +
63"kE8ukSvm1CkfE7po2Bv3a2u6ZOhWcBJsi+OMSzVI2bOvfS26jfYkb9JSL4bLksYp\n" +
64"lx+AQHRgWh+vnZj4xItcG89AlcE+eFDatKlcCTLyKLocYspRx7Zs40B0JHbncaFu\n" +
65"V5bv5OcqaA+PhQp9xAMO3bcPz/UgtyiLawNwIAUCgYEAkJDjishIA2YEnRow0bla\n" +
66"IWpuUBmnGfAhCwK4Mojc+yXRGZxNvUEvI2pMqptnWBxhf1jveg5mcKmU52bou3xp\n" +
67"BxJtD4N3DzK5d+enOsWYDDi1TW8cvMRe8WLKHh56jur4N4McFthRDUpvGF0Wb8mS\n" +
68"DxOnpQfsBnSrY33sURmm3dE=\n" +
69"-----END PRIVATE KEY-----";
70 //byte[] keyBytes = FileUtils.readFileToByteArray(file);
71 byte[] keyBytes = llaveCadena.getBytes();
72
73
74 PKCS8Key pkcs8 = new PKCS8Key(keyBytes, pass.toCharArray());
75 PrivateKey llavePrivada = pkcs8.getPrivateKey();
76 byte[] cadena = cadenaLlave.getBytes();
77
78 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, llavePrivada);
79 //byte[] bkey = cipher.doFinal(Base64.decode(cadena));
80 byte[] bkey = cipher.doFinal(Base64.decodeBase64(cadena));
81 SecretKey llaveDescifrada = new SecretKeySpec(bkey , 0, bkey .length, "AES");
82
83
84 byte[] bJsonCifrado = cadenaResponse.getBytes("UTF-8");
85 Cipher cipher2 = Cipher.getInstance("AES/ECB/PKCS5Padding");
86 cipher2.init(Cipher.DECRYPT_MODE, llaveDescifrada);
87 byte[] ciph = cipher2.doFinal(Base64.decodeBase64(bJsonCifrado));
88 String jsonDescrifrado = new String(ciph);
89
90 System.out.println(jsonDescrifrado);
91 System.exit(0);
92 } catch (GeneralSecurityException ex) {
93 Logger.getLogger(BluTesting.class.getName()).log(Level.SEVERE, null, ex);
94 } catch (UnsupportedEncodingException ex) {
95 Logger.getLogger(BluTesting.class.getName()).log(Level.SEVERE, null, ex);
96 }
97
98
99 }
100
101}
102