ZipArchive加密壓縮/解壓縮問題

迷路
使用ZipArchive進行加密壓縮
$zip->setEncryptionName($path);
這樣寫的話會出現錯誤紀錄
PHP Warning: ZipArchive::setEncryptionName() expects at least 2 parameters, 1 given in
少給必要參數,但是壓縮依然會完成
並且可以順利解壓縮
但是如果改成
$zip->setEncryptionName($path, ZipArchive::EM_AES_256);
這樣不會有錯誤紀錄
但是另一邊用ZipArchive進行解壓縮時
只能解出目錄,裡面加密的檔案會解不出來
由於主機設定關係
我這邊無法讓解壓縮網站的ZipArchive升到能壓縮的版本
因此猜測是舊版本中沒有AES_256這個加密
想請問有解決方式嗎?或是有其他參數可使用嗎?網路上只找的到AES_256而已
迷路
目前查到的資訊是 EM_AES_256 之類的加密模式只有新版本才有
舊版本雖然有setPassword,但是實際上卻沒有加密模式的資料
所以不單無法加密壓縮,也無法解壓縮有加密的壓縮檔
如果我的理解無誤,這可真是讓人無言
o小高o
把ZipArchive::EM_AES_256 改成 \ZipArchive::EM_AES_256

或是$zip->setEncryptionName(basename($file), \ZipArchive::EM_AES_256);

試試看?
回到頂部