Answered
AES encryption with AES/CBC/PKCS7
We need to encrypt data using AES/CBC/PKCS7. However the CF encrypt method only accepts AES/CBC/PKCS5Padding. Any idea how to achieve this? We are using CF 2016.
We need to encrypt data using AES/CBC/PKCS7. However the CF encrypt method only accepts AES/CBC/PKCS5Padding. Any idea how to achieve this? We are using CF 2016.
Example using "AES/CBC/PKCS5Padding" in ColdFusion 2016:
https://trycf.com/gist/a731623422b8967baa1f363958329686/acf2016?theme=monokai
<cfscript>
// Plaintext
plaintext = "Secret message that needs AES encryption.";
// Use raw binary
// AES requires a 16, 24, or 32 byte key (128, 192, 256 bits).
// Here we'll use a 32-byte (256-bit) key for AES-256.
keyBin = BinaryDecode("00112233445566778899AABBCCDDEEFF00112233445566778899AABBCCDDEEFF", "hex");
// Convert to Base64 strings for use with encrypt()
key = ToBase64(keyBin);
// AES CBC requires a 16-byte IV
ivBin = BinaryDecode("0102030405060708090A0B0C0D0E0F10", "hex");
// Encrypt: PKCS5Padding == PKCS7 padding here
encrypted = encrypt(plaintext, key, "AES/CBC/PKCS5Padding", "hex", ivBin);
// Decrypt
decrypted = decrypt(encrypted, key, "AES/CBC/PKCS5Padding", "hex", ivBin);
writeOutput("<b>Plaintext:</b> " & plaintext & "<br>");
writeOutput("<b>Encrypted (Hex):</b> " & encrypted & "<br>");
writeOutput("<b>Decrypted:</b> " & decrypted & "<br>");
</cfscript>
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.