private function fileDecrypt($filename, RSA $rsa)
 {
     // Временная директория
     $workdir = sys_get_temp_dir() . '/' . md5(RSA::bcrand('0', '9999999999999999999999') . date('-Y-m-d-H-i-s'));
     mkdir($workdir);
     // Распаковываем фрхив с зашифрованными файлами
     $zip = new \ZipArchive();
     $zip->open($filename);
     $zip->extractTo($workdir);
     $zip->close();
     // Расшифровываем файл с описанием
     $finfo = json_decode(base64_decode($rsa->decrypt(file_get_contents($workdir . '/info'), filesize($workdir . '/info'))));
     //Расшифровываем исходный файл и сохраняем его используя информацию из описания
     file_put_contents($filename = $workdir . '/../' . $finfo->name, $rsa->decrypt(file_get_contents($workdir . '/file'), $finfo->size));
     // Удаляем временные файлы
     unlink($workdir . '/file');
     unlink($workdir . '/info');
     rmdir($workdir);
     return $filename;
 }