【发布时间】:2011-03-12 22:18:42
【问题描述】:
我处于一个令人羡慕的位置,我必须维护现有 ColdFusion 应用程序的功能。作为登录过程的一部分,Coldfusion 应用程序会存储一个带有加密字符串的 cookie。
encrypt(strToEncrypt, theKey, "AES", "Base64")
我可以使用 MCrypt 和以下代码在 PHP 中成功解密此字符串
mcrypt_decrypt(
MCRYPT_RIJNDAEL_128,
base64_decode($theKey),
base64_decode($encrypted_string),
MCRYPT_MODE_ECB, "0000000000000000")
我现在需要在 PHP 中执行相同的加密,以便 ColdFusion 应用程序可以访问 cookie 中的数据。
我现在拥有的是
mcrypt_encrypt( MCRYPT_RIJNDAEL_128, base64_decode($theKey), $strToEncrypt, MCRYPT_MODE_ECB, "0000000000000000");
但是,这与等效的 ColdFusion 加密算法不兼容
decrypt(strToDecrypt, theKey, "AES", "Base64")
抛出Given final block not properly padded 错误。
非常感谢任何帮助。
詹姆斯
【问题讨论】:
-
你做
base64_encode()mcrypt_encrypt()的结果吗? -
还可以查看加密函数的 ivosalt 和迭代参数:adobe.com/livedocs/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/…
-
@Tomalak 是的,mcrypt_encrypt 的结果是 base64_encoded。
-
@Ciaran 根据我的阅读,IV 和迭代次数不适用于 ECB 模式。
标签: php encryption coldfusion mcrypt