(ftp://user:pass@hostname/path) 在我实施 openssl 后停止工作

(ftp://user:pass@hostname/path) stopped working after I implemented openssl

我拥有一个使用 PHP 的在线 FTP,由于 mcrypt 已被弃用,我想切换到 openssl 以继续加密并将用户凭据存储为 cookie (浏览器会话结束时删除)。我知道加密过程工作正常,因为我拥有所有功能的全部功能,但 ftp:// 路径。在加密和解密之后,我还回显了 cookie 中的值,它们与我加密之前的值完全相同。

这只是现在不起作用但以前起作用的例子之一:

$file=fopen("ftp://$u:$p@$h".$_GET['dir'],"r") or die("Couldn't open file");

Warning: fopen() expects parameter 1 to be a valid path, string given in hidden on line hidden

我不明白为什么会这样,我非常适合提供确定为什么会这样可能需要的任何代码。但是,我不能 post 可能危及我网站安全的代码。提前谢谢你。

问题是解密中有多余的字符。你看不到这些字符,所以你不知道它们在那里。使用以下内容:

strval(str_replace("[=10=]", "","ftp://$u:$p@$h".$_GET['dir']))