· 7 years ago · Jul 31, 2018, 09:02 PM
1AES Decryption not working
2public static byte[] hexStringToByteArray(String s) {
3 int len = s.length();
4 byte[] data = new byte[len / 2];
5 for (int i = 0; i < len; i += 2) {
6 data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
7 + Character.digit(s.charAt(i+1), 16));}
8 return data;
9}
10
11dh=new data_helper(Resy.this);
12 mac_db=dh.getData();
13
14// getdata=mac_db.toString();
15
16 KeyGenerator kgen;
17 try {
18 kgen = KeyGenerator.getInstance("AES");
19
20 kgen.init(128); // 192 and 256 bits may not be available
21
22 // Generate the secret key specs.
23 SecretKey skey = kgen.generateKey();
24 byte[] raw = skey.getEncoded();
25
26 SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
27
28
29 // Instantiate the cipher
30
31 Cipher cipher = Cipher.getInstance("AES");
32 getdata=mac_db.toString();
33// byte g1[]=getdata.getBytes();
34// System.out.println(g1);
35
36 byte b[]=hexStringToByteArray(getdata);
37 cipher.init(Cipher.DECRYPT_MODE, skeySpec);
38 byte[] m1=cipher.doFinal(b); // here pad block corrupt exception came.
39 String originalString_mac = new String(original_macadress);
40 Toast.makeText(getApplicationContext(),"Original : " +originalString_mac + " " + asHex(original_macadress) , Toast.LENGTH_LONG).show();
41
42Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");