Used for integration of Linkshare affiliate program in Coldfusion.
Encrypted message signatures via JAVA in CF
<cffunction name=
"HMACMD5" returntype=
"string" access=
"public" hint=
"Returns an MD5 encrypted
message">
<!---
You may choose the format of your output --->
<cfargument name=
"message" type=
"String" required=
"true">
<cfargument name=
"key" type=
"String" required=
"true">
<cfargument name=
"outputFormat" type=
"string" required=
"false" default=
"String" hint=
"String,base64,uBase64">
<cfset
var myMessageString =
arguments.message >
<cfset
var myMessageByteArray =
myMessageString.getBytes()>
<cfset
var myKey =
arguments.key>
<cfset
var myKeyByteArray =
myKey.getBytes()>
<cfscript>
key =
CreateObject(
"java",
"javax.crypto.spec.SecretKeySpec");
key.init(myKeyByteArray,
"HmacMD5");
hmac =
CreateObject(
"java",
"javax.crypto.Mac");
hmac =
hmac.getInstance(
"HmacMd5");
hmac.init(key);
hmac.update(myMessageByteArray);
hmac =
hmac.doFinal();
</cfscript>
<cfswitch expression=
"#arguments.outputFormat#">
<cfcase value=
"base64">
<cfreturn
tobase64(hmac)>
</cfcase>
<cfcase value=
"ubase64">
<cfreturn
URLEncodedFormat(tobase64(hmac))>
</cfcase>
<cfdefaultcase>
<cfreturn
toString(hmac)>
</cfdefaultcase>
</cfswitch>
</cffunction>
+