データベースからいくつかのアイテムを選択し、暗号化されたアイテムを復号化しようとする次のスクリプトがあります。問題はcompany_id
、テーブルにある変更によって暗号化キーが一意になることです。
<cfset request.ek = "password">
<!-- <cfset encKey = encrypt(request.ek, company_id)> -->
<!-- <cfset decrypted = decrypt(urldecode(arguments.mystring), encKey)> -->
<cfquery name="header" datasource="MyDB">
SELECT TOP 10
ID,
company_id,
encString
FROM
dbo.[TableName];
</cfquery>
<cfoutput>ID|company_id|encString<br></cfoutput>
<cfloop query="header">
<cfoutput>#ID#|#company_id#|#decrypt(urldecode(encString, encrypt(request.eq, company_id)))#<br></cfoutput>
</cfloop>
次のエラーが表示されます。
Parameter validation error for the DECRYPT function.
The function accepts 2 to 6 parameters.
編集。Scott Stroz に感謝します。私は本当に括弧をいじりました。私のコードは次のようになります。
<cfset request.ek = "password">
<!-- <cfset encKey = encrypt(request.ek, company_id)> -->
<!-- <cfset decrypted = decrypt(urldecode(arguments.mystring), encKey)> -->
<cfquery name="header" datasource="MyDB">
SELECT TOP 10
ID,
company_id,
encString
FROM
dbo.[TableName];
</cfquery>
<cfoutput>ID|company_id|encString<br></cfoutput>
<cfloop query="header">
<cfoutput>#ID#|#company_id#|#decrypt(urldecode(encString), encrypt(request.eq, company_id))#<br></cfoutput>
</cfloop>