脚本宝典收集整理的这篇文章主要介绍了在PHP中取消加密/重新加密ColdFusion加密字符串,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
encrypt(strToEncrypt,theKey,"AES","Base64")
mcrypt_decrypt( MCRYPT_RIJNDAEL_128,base64_decode($theKey),base64_decode($encrypted_string),MCRYPT_MODE_ECB,"0000000000000000")
我现在需要在PHP中执行相同的加密,以便ColdFusion应用程序可以访问cookie中的数据.
目前我所拥有的是
mcrypt_encrypt( MCRYPT_RIJNDAEL_128,$strToEncrypt,"0000000000000000");
但是,这与等效的ColdFusion加密算法不兼容
decrypt(strToDecrypt,"Base64")
抛出给定的最终块未正确填充错误.
任何帮助非常感谢.
詹姆士
在CF中加密
Encrypt(data,encKey,'AES/CBC/PKCS5Padding',encoding,encIv)
用PHP解密
function Decode($data,$encKey,$encIv,$format = 'uu') { if ($format === 'uu') { $data = Convert_uudecode($data); } else if ($format === 'hex') { $data = Pack('H*',$data); } else if ($format === 'base64') { $data = Base64_Decode($data); } else if ($format === 'url') { $data = UrlDecode($data); } $data = MCrypt_decrypt(MCRYPT_RIJNDAEL_128,$data,'cbc',$encIv); $pad = Ord($data{strlen($data)-1}); if ($pad > strlen($data)) return $data; if (strspn($data,chr($pad),strlen($data) - $pad) != $pad) return $data; return substr($data,-1 * $pad); }
用PHP加密
function Encode($data,$format = 'uu') { $pad = 16 - (StrLen($data) % 16); if ($pad > 0) { $data .= Str_rePEat(Chr($pad),$pad); } $data = MCrypt_encrypt(MCRYPT_RIJNDAEL_128,$encIv); if ($format === 'uu') { return Convert_uuencode($data); } else if ($format === 'hex') { return Bin2Hex($data); } else if ($format === 'base64') { return base64_encode($data); } else if ($format === 'url') { return UrlEncode($data); } }
解密CF.
Decrypt(data,encIv)
由于某些我无法记住的原因,我赞成’uu’进行编码.
以上是脚本宝典为你收集整理的在PHP中取消加密/重新加密ColdFusion加密字符串全部内容,希望文章能够帮你解决在PHP中取消加密/重新加密ColdFusion加密字符串所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。