This website uses cookies from Google to deliver its services and to analyze traffic. Click Here to learn more.


You are watching: Javax crypto badpaddingexception given final block not properly padded

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
*

package com.tmobile;import com.apigee.flow.execution.ExecutionContext;import com.apigee.flow.execution.ExecutionResult;import com.apigee.flow.execution.spi.Execution;import com.apigee.flow.message.MessageContext;import java.util.Arrays;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import javax.xml.bind.DatatypeConverter;public class DecryptionDocumentId2 implements Execution private static final String _varPrefix = "decrypt_"; private static final String varName(String s) return _varPrefix + s;


See more: Dr Seuss Pumpkin As Your Favorite Dr, Latest News

Override public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) try // decode the base64 encoded string String decryptionKey1 = messageContext.getVariable("dk1_decryption"); //String decryptionKey2 = messageContext.getVariable("dk2_decryption"); byte<> key1 = decryptionKey1.getBytes("UTF-8"); //byte<> key2 = decryptionKey2.getBytes("UTF-8"); SecretKey secretKey1 = new SecretKeySpec(key1, 0, key1.length, "AES"); // SecretKey secretKey2 = new SecretKeySpec(key2, 0, key2.length, "AES"); String documentId = messageContext.getVariable("documentId"); if (documentId == null) messageContext.setVariable(varName("reason"), "missing documentId"); return ExecutionResult.ABORT; String decryptedValue = decrypt(documentId.trim(),secretKey1,messageContext); messageContext.setVariable("decryptedMsisdn", decryptedValue); return ExecutionResult.SUCCESS; catch (Exception e) String error = e.toString(); messageContext.setVariable(varName("error"), error); int ch = error.lastIndexOf(":"); if (ch >= 0) messageContext.setVariable(varName("reason"), error.substring(ch+2)); else messageContext.setVariable(varName("reason"), error); return ExecutionResult.ABORT; private String decrypt(String encryptedText, SecretKey secretKey, MessageContext messageContext) throws Exception Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secretKey); byte<> decryptedTextBytes = null; try decryptedTextBytes = cipher.doFinal(DatatypeConverter.parseBase64Binary(encryptedText)); catch (IllegalBlockSizeException e) messageContext.setVariable(varName("reason1"), e.toString()); throw e; catch (BadPaddingException e) messageContext.setVariable(varName("reason2"), e.toString()); throw e; return new String(decryptedTextBytes); This is a java code for an Apigee Edge callout. During execution, while trying to decrypt encrypted data in APIGEE , we are getting error of final block not properly padded. The code we started with is: http://aesencryption.net/#Java-aes-encryption-example We generate encrypted data from there and are trying to decrypt it with a key.