Skip to main content
Inspiring
Apr 26, 2021 2:21 PM UTC
Answered

How to decode and encrypted value using DESEDE and a .key file?

Hi all. Help would be very appreciated...

 

I have a requirement to accept a POST parameter that is encrypted using DESede/ECB/PKCS5Padding, and decrypt that param for use in my application. 

 

In attempting to test out this encryption and decryption, the following code was found to work successfully:

<cfset theKey = generateSecretKey('DESEDE')>
<cfset varString = "Testing">
<cfset encrypted=encrypt(varString, theKey, 'DESEDE','Base64')> 
<cfset decrypted=decrypt(encrypted, theKey, 'DESEDE','Base64')>
<cfdump var="#decrypted#">

 

Our issue is that in the test above the key value produced appears to be plain text, but the key that we are receiving from our data sender is in a .key file, and which seems to contain binary data. Can anyone tell me how a .key file might be used to decrypt a desede encrypted file?

This topic is closed to new replies. Start a new post to keep the conversation going.
Dordrecht7177366Correct answer
Inspiring
Apr 29, 2021 10:50 PM UTC

Thank you for the effort, BKBK, but what worked was running the binary data through the ToBase64() function.

4 replies

Dordrecht7177366AuthorCorrect answer
Inspiring
Apr 29, 2021 10:50 PM UTC

Thank you for the effort, BKBK, but what worked was running the binary data through the ToBase64() function.

Translate
BKBK
Community Expert
Community Expert
Apr 30, 2021 7:59 AM UTC

Glad to hear. Could you please share your code? It will help someone else in future, of that I am sure.

Translate
Inspiring
May 5, 2021 1:17 PM UTC

Thsi is the code that worked:

<cffile action="readbinary" file="C:\junk\myBinaryKey.key" variable="keyAsBinary">
<cfset myKey = ToBase64(keyAsBinary)>
<cfoutput>#myKey#</cfoutput>
Translate
BKBK
Community Expert
Community Expert
Apr 26, 2021 4:03 PM UTC

Without much thought, my immediate instinct is to try something like:

<!--- First check whether the key file contains comments. If so, you might have to filter them out before going any further. --->
<cffile action="readbinary" file="absolute_path_to_key_file" variable="keyAsBinary">
<cfset theKey = toString(keyAsBinary)>
Translate