Php 是否可以使用openssl将文件解密到内存而不是磁盘文件

Php 是否可以使用openssl将文件解密到内存而不是磁盘文件,php,encryption,openssl,Php,Encryption,Openssl,我可以使用openssl成功地加密和解密文件。然而,我能找到的唯一参考是输出是一个文件 我不需要写入磁盘,而是需要将音频文件解密到内存中,然后才能播放音频。 目前,我使用以下方法: try { exec("openssl smime -decrypt -inform DER -in ".$filetoplay." -out " . $outfilename . " -inkey " . $rsakey); i

我可以使用openssl成功地加密和解密文件。然而,我能找到的唯一参考是输出是一个文件

我不需要写入磁盘,而是需要将音频文件解密到内存中,然后才能播放音频。 目前,我使用以下方法:

  try {
      exec("openssl smime -decrypt -inform DER -in ".$filetoplay." -out " . $outfilename . " -inkey " . $rsakey);
      if (file_exists($outfilename)) {
          $returnedValue = file_get_contents($outfilename);
          unlink($outfilename);
          echo $returnedValue;
      }
  } catch (exception $e) {
      echo "\n did not decrypt with " . $certname;
  }
我对一个文件进行快速解密,然后使用file_get_contents($outputfilename)获取内容,然后从磁盘中删除未加密的文件。 这会导致一个安全问题,我不想在任何地方有任何未加密的文件副本

有没有办法用blob对象替换$outputfilename?或者将$outputfilename定向到内存


任何帮助都将不胜感激。

如果您尝试,可能会更容易些?需要smime类型,甚至php的选项似乎也需要文件名。-openssl|u pkcs7|u解密(字符串$input|u文件名,字符串$output|u文件名,OpenSSLCertificate |字符串$certificate |字符串| null$private|key=null):bool