KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
In my application I am encrypting and decrypting data using secretKey. For that I am using AES algorithm. But I am getting exception in decrypt, one value out of three already encrypted values using secret key. Exception is: Illegal Block Size Exception Input length must be multiple of 16 when decrypting with padded cipher. Below is my code: Function to encyrpt value public static String symmetricEncrypt(String text, String secretKey) { BASE64Decoder decoder = new BASE64Decoder(); byte[] raw; String encryptedString; SecretKeySpec skeySpec; BASE64Encoder bASE64Encoder = new BASE64Encoder(); byte[] encryptText = text.getBytes(); Cipher cipher; try { raw = decoder.decodeBuffer(secretKey); skeySpec = new SecretKeySpec(raw, "AES"); cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); encryptedString = bASE64Encoder.encode(cipher.doFinal(encryptText)); } catch (Exception e) { e.printStackTrace(); return "Error"; } return encryptedString; } Function to decrypt value public static String symmetricDecrypt(String text, String secretKey) { BASE64Decoder decoder = new BASE64Decoder(); BASE64Decoder base64Decoder = new BASE64Decoder(); Cipher cipher; String encryptedString; byte[] encryptText = null; byte[] raw; SecretKeySpec skeySpec; try { raw = decoder.decodeBuffer(secretKey); skeySpec = new SecretKeySpec(raw, "AES"); encryptText = base64Decoder.decodeBuffer(text); cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, skeySpec); encryptedString = new String(cipher.doFinal(encryptText)); } catch (Exception e) { e.printStackTrace(); return "Error"; } return encryptedString;
Tags (comma-separated)
Save Edits
Cancel