2017-06-16 129 views
0

我想知道如果任何人都可以提供幫助,我有以下zip文件和密碼保護的代碼 - 但我想定義zip的加密級別,類似於ZipArchive :: setEncryptionName,有沒有人知道這是否可以做到?PHP通過shell_exec壓縮文件並定義加密級別

$command = "cd $location ; zip "; 
$command .= "-P $password "; 
$command .= "$filename.zip $filename.csv"; 
$system = shell_exec($command); 
//Set headers 
header('Content-Type: application/zip'); 
header('Content-Disposition: attachment; filename="' . $filename . '.zip"'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: ' . filesize($location . $filename . ".zip")); 
readfile($location . $filename . '.zip'); // output the zip 
unlink($location . $filename . '.csv'); // delete CSV 
unlink($location . $filename . '.zip'); // delete the zip 

回答

0

Gsusonline,

對於AES-256加密,嘗試following--

exec("7z a -p $PASSWORD -mem=AES256 -tzip $ZIP $SOURCE"); 

此外,檢查出CkZip @https://www.chilkatsoft.com/

爲,按他們的文檔中發現@https://www.chilkatsoft.com/refdoc/phpCkZipRef.html它也有選擇使用Blowfish和Twofish:

int get_EncryptKeyLength() 
void put_EncryptKeyLength(int intVal); 

使用AES,Blowfish,Twofish或WinZip兼容AES加密的加密密鑰長度。此值必須是128,192,或256的默認值是128

最佳,

-Rush

+0

感謝火拼,需要看到,如果我能得到這個實現,可能需要7z安裝在服務器上。不要以爲你會知道如何測試它,看看它是否已經加密到那個級別了? – gsusonline