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