我最近使用 ColdFusion 9 为我的公司做了一个网站。我遇到的问题是 ColdFusion 加密/解密功能。在我解密的某些字符串上,我得到了这些奇怪的特殊字符。
例子:
MK/_0
<---加密字符串输出
�#5&z
<---输出解密字符串
我不确定为什么会发生这种情况(并且仅在某些被解密的字符串上)。
这是代码:
<cfset ccNum = decrypt(getCCInfo.CUST_CARDNUMBER,myKey)>
我最近使用 ColdFusion 9 为我的公司做了一个网站。我遇到的问题是 ColdFusion 加密/解密功能。在我解密的某些字符串上,我得到了这些奇怪的特殊字符。
例子:
MK/_0
<---加密字符串输出
�#5&z
<---输出解密字符串
我不确定为什么会发生这种情况(并且仅在某些被解密的字符串上)。
这是代码:
<cfset ccNum = decrypt(getCCInfo.CUST_CARDNUMBER,myKey)>
好的,首先,我必须指出,通过不指定加密算法,您使用的加密非常差。所以你需要解决这个问题。其次,您可能应该使用一些编码来使您的加密存储更可靠。
所以试试这段代码。
<cfset key = generateSecretKey("AES") />
<!--- Set the ciphertext to a variable. This is the string you will store for later deciphering --->
<cfset cipherText = encrypt(plaintext, key, "AES/CBC/PKCS5Padding", "HEX") />
<cfoutput>#cipherText#</cfoutput>
<!--- Then when you decrypt --->
<cfset decipherText = decrypt(cipherText, key, "AES/CBC/PKCS5Padding", "HEX") />
<cfoutput>#decipherText#</cfoutput>
上面的代码将使用强大的加密算法,并将密文转换为比您在上面示例中显示的乱码更容易存储的格式。这样当你存储它时,当你再次检索它时它会更可靠。
这是字符串的外观示例:
A51BBB284D6DCCDC17D26FB481584236087C3AB272918E17963BAF749438C06A484922820EDCCD25150732CC5CF8A096