我有一个php代码,可以读取加密的文件并将其解密。什么是整体?也就是说,有一个文件夹仅包含4/5加密文件,我想解密所有文件,最好是使用Win rar。
<?php
$file= "text.txt";
$decrypted = decrypt_file($file,'pass');
header('Content-type:application/txt');
fpassthru($decrypted);
function decrypt_file($file,$passphrase){
$iv = substr(md5("\x18\x3C\x58".$passphrase,true),0,8);
$key = substr(md5("\x2D\xFC\xD8".$passphrase,true).md5("\x2D\xFC\xD8".$passphrase,true),0,24);
$opts = array('iv'=>$iv, 'key'=>$key);
$fp = fopen($file,'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_READ, $opts);
return $fp;
}
?>
答案 0 :(得分:0)
glob()
函数就是这样做的。要制作一个zip文件,您也可以使用ZipArchive
。这是一个例子:
<?php
// create a zip file
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CREATE);
$directory = 'path/to/folder';
foreach (glob("$directory/*.txt") as $filename) {
// get the decrypted content
$decrypted = decrypt_file($filename,'pass');
// add it to the zip
$zip->addFromString($filename, $decrypted);
}
$zip->close();
header("Location: test.zip");
因此,我们遍历每个文件,对其进行解密,然后将该文本作为自己的文件添加到zip中,并使用相同的文件名。完成后,在此示例中,我们剩下的是test.zip
,因此我们将用户重定向到该文件以进行下载。您可以改为输出正确的zip的内容类型和关联的标头。还要注意,您可能需要整理权限来保存test.zip,并查看ZipArchive
的{{1}}方法来提供正确的覆盖标志。祝你好运!