PHP-stream\u filter\u append,无法定位筛选器(mcrypt)

PHP-stream\u filter\u append,无法定位筛选器(mcrypt),php,encryption,mcrypt,Php,Encryption,Mcrypt,我的配置是(来自phpinfo()): 你看,我已经启用了mcrypt 我试着 没关系 但当我尝试类似的东西时 stream_filter_append($fp, 'mcrypt.rijndael-256', STREAM_FILTER_WRITE, $opts); 我有两个警告 stream_filter_append(): Could not open encryption module in ... stream_filter_append(): unable to create or

我的配置是(来自phpinfo()):

你看,我已经启用了mcrypt

我试着

没关系

但当我尝试类似的东西时

stream_filter_append($fp, 'mcrypt.rijndael-256', STREAM_FILTER_WRITE, $opts);
我有两个警告

stream_filter_append(): Could not open encryption module in ...
stream_filter_append(): unable to create or locate filter "mcrypt.rijndael-256" in ...
我想写是不对的

stream_filter_append($fp, 'rijndael-256', STREAM_FILTER_WRITE, $opts); // without 'mcrypt.*'
但在这种情况下,我只有一个警告

stream_filter_append(): unable to create or locate filter "rijndael-256" in ...
最后一件事。使用“rot13”进行加密/描述效果良好

stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

因此,问题是如何使用一些mcrypt方法进行加密/解密?

很抱歉,我忽略了一些重要的细节。 还有一个字符串:

$opts = array('iv' => $iv, 'key' => $key, 'mode' => 'stream');
stream_filter_append($fp, 'mcrypt.rijndael-256', STREAM_FILTER_WRITE, $opts);
当然,它失败了,因为流模式下不支持Rijndael-256。
因此,感谢您的评论,很抱歉打扰您。

a)不知道它为什么会失败,但b)这是我以前经常看到的东西,以防万一:rijndael-256不是aes256。aes256仍然是rijndael-128,具有32字节/256bit密钥。它表明请求的密码方法不可用。您可能有一个输入错误,或者其中一个密码(rijndael-256)没有编译到您的mcrypt版本中。所以。@kamlesh.bar…但是mcrypt_模块_打开了,并且必要的密码和模式在phpinfo()的输出中,这是奇怪的部分-只要phpinfo()和stream_filter_append()脚本已经由“相同”的php实例(不是一个作为Web服务器模块,而是一个通过php cli->不同的php.ini文件)尝试获取所有筛选器并应用其中一个$streamlist=stream\u get\u filters();print\r($streamlist);@kamlesh.bar。结果是数组([0]=>convert.iconv.[1]=>mcrypt.[2]=>mdecrypt.[3]=>string.rot13[4]=>string.toupper[5]=>string.tolower[6]=>string.strip_标签[7]=>convert.[8]=>consumerd[9]=>dechunk[10]=>zlib.[11]=>bzip2.*)。正如我在问题“string.rot13”中提到的,这个列表中的其他方法也很好用
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
$opts = array('iv' => $iv, 'key' => $key, 'mode' => 'stream');
stream_filter_append($fp, 'mcrypt.rijndael-256', STREAM_FILTER_WRITE, $opts);