加密信用卡字符串时,ColdFusion cfc cfquery失败

时间:2014-04-17 13:02:51

标签: encryption coldfusion aes cfc cfquery

我在.cfm页面中有一个表单,它使用jquery来验证表单,并通过.ajax将值传递给ColdFusion cfc。这一切都有效。 以下是我的组件代码被剥离以显示相关问题。

<cfcomponent displayName="2014 Registration">
 <cfset this.encryptionKey = generateSecretKey('AES') />

 <cffunction name="confregistration" output="false" access="remote" returnType="string">

 <cfargument name="cc" required="true" type="string"/>
 <cfargument name="cvv" required="true" type="string"/>

<cfquery datasource="#application.datasource#">
       INSERT INTO  table_name(cc,cvv)
         values(<cfqueryparam cfsqltype="cf_sql_varchar" value="#encrypt(arguments.cc, THIS.encryptionKey)#"/>,
        <cfqueryparam cfsqltype="cf_sql_varchar" value="#encrypt(arguments.cvv, this.encryptionKey)#"/>) 
     </cfquery>


 <cfset message = 'Thank you ' & #encrypt(arguments.cc, THIS.encryptionKey)# />
 <cfreturn #message# />

 </cffunction>
</cfcomponent>

这使插入完全失败。在测试中,如果我删除加密线,查询会完成它的工作并发布到数据库。 如果我也删除了查询但返回的信息只包含:encrypt(arguments.cc,THIS.encryptionKey)我可以看到加密的字符串。

我是冷冻新手,但已经使用了几个月。我发现了一些带变量的怪癖,并使用了#s变量。在某些情况下需要它们但在其他情况下不需要它们 我的表单工作,组件函数传递arguments.cc值,如果它没有加密。所以我很接近,但似乎有些奇怪。 关于什么可能导致带有加密值的cfparam失败的任何提示?

0 个答案:

没有答案