在php中通过openssl加密和解密zip存档

在php中通过openssl加密和解密zip存档,php,encryption,openssl,cryptography,ziparchive,Php,Encryption,Openssl,Cryptography,Ziparchive,我在php中通过openssl解密zip存档时遇到了一些问题 这就是我用公钥加密它的方法 public function encrypt($data) { openssl_public_encrypt($data, $encrypted, $this->pubKey); return chunk_split(base64_encode($encrypted)); } 加密输出如下所示: T5NU3GGQCNWFHBOCTX0D1BOVRBG9VF

我在php中通过openssl解密zip存档时遇到了一些问题

这就是我用公钥加密它的方法

public function encrypt($data) {
        openssl_public_encrypt($data, $encrypted, $this->pubKey);

        return chunk_split(base64_encode($encrypted));
    }
加密输出如下所示:

T5NU3GGQCNWFHBOCTX0D1BOVRBG9VFKNJAVZ5RSU4OBSKI2QBDW1SZ4YQNC8YA3SU/TVPCTW/vd LKZeKaFZloPP49hu9uRX7+rJYegVHHLKBdP0JX380mmJCq+4kj1R3gt4l4zzBGuvEZMQnSffOgdR HDAO0DCSU0R2FEOKKY9NVXTMX9IXVGMOALY0S4AZK9MD5KNHCKIGG7YCYAR97LX6A7MKmi xq9/hpvLhdQa5cZH6f1eXoIFx9uRSIaKdeKmZzHPVUPOVnqlHQuhtUE+Of/rnwykos280turokv fk7jepF+w3wxQ1yrYLDPyglWBCjyaHQbdDTB7w==

然后我试图解密我的zip档案回来

public function decrypt($data) {
        openssl_private_decrypt(base64_decode($data), $out, $this->prvKey);

        return $out;
    }
我刚刚得到了zip存档的路径,类似于

C:\OpenServer\domains\project\src\AppBundle\Command/../../../backup/2016_04_05_full.zip
我应该如何解密加密的zip存档文件


谢谢

openssl_public_encrypt对提供的$data进行加密,在本例中是zip文件路径。加密整个文件需要做更多的工作。这里是@dbugger的起点,它只显示了对称加密部分。您需要生成一个随机数据密钥,并使用上述函数使用公钥对其进行加密(即创建一个混合密码系统)。