我最近使用ColdFusion 9为我的公司做了一个网站。我遇到的问题是使用ColdFusion加密/解密功能。在我解密的某些字符串上,我会看到这些奇怪的特殊字符。
示例:
MK/_0
< ---加密字符串输出
�#5&z
< ---已解密的字符串输出
我不确定为什么会发生这种情况(并且只针对某些解密的字符串)。
以下是代码:
<cfset ccNum = decrypt(getCCInfo.CUST_CARDNUMBER,myKey)>
答案 0 :(得分:2)
好的,首先,我必须指出,通过不指定加密算法,您使用非常差的加密。所以你需要解决这个问题。其次,您可能应该使用一些编码来使您的加密存储更可靠。
请尝试使用此代码。
<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