Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PGP在Ubuntu中用Python加密Zip文件_Python_Encryption_Zip_Gnupg_Pgp - Fatal编程技术网

PGP在Ubuntu中用Python加密Zip文件

PGP在Ubuntu中用Python加密Zip文件,python,encryption,zip,gnupg,pgp,Python,Encryption,Zip,Gnupg,Pgp,我定期在服务器上生成文件夹的zip文件,并将这些归档文件推送到存储服务器。为了遵守数据隐私法规,我们需要使用客户端提供的公钥对这些文件夹进行加密 我正在使用gnupg,并已将公钥导入服务器 stream = open('/home/user/myfile.zip','rb') gpg.encrypt(stream,fingerprint,output='/home/user/myfile.zip.gpg') 但是,当使用私钥解密文件时,生成的zip文件与源zip文件的大小不同,并且不可读。例如

我定期在服务器上生成文件夹的zip文件,并将这些归档文件推送到存储服务器。为了遵守数据隐私法规,我们需要使用客户端提供的公钥对这些文件夹进行加密

我正在使用gnupg,并已将公钥导入服务器

stream = open('/home/user/myfile.zip','rb')
gpg.encrypt(stream,fingerprint,output='/home/user/myfile.zip.gpg')
但是,当使用私钥解密文件时,生成的zip文件与源zip文件的大小不同,并且不可读。例如,源zip文件为66KB,解密文件为104KB

我对其他压缩测试文件也有类似的问题:.jpg、.png等

我唯一成功解密并打开的文件是未压缩的文本文件-.txt和.css,因此我知道密钥对工作正常

当尝试打开解密的zip文件时,我得到的错误是:“读取“myfile.zip”的内容时出现问题。存档文件不完整”


编辑:如果我从Ubuntu运行gpg命令,它会正常工作:gpg--homedir/home/user/.pgphome--output/home/user/myfile.zip.gpg--encrypt/home/user/myfile.zip,所以这个问题与Python无关。

如果你试图从shell(而不是从Python)加密/解密同一个文件,你没有问题吗?你不能加密文件!只允许字节。注意开场风格。如果你认为这不是一个好把戏,@boardrider如果我从Ubuntu运行命令,它就会正常工作:gpg--homedir/home/user/.pgphome--output/home/user/myfile.zip.gpg--encrypt/home/user/myfile。zip@dsgdfg,根据gnupg文档,数据可以是文件,也可以是bytestream:encrypt(数据,*recipients,**kwargs)参数:data(str)–要加密的文件或ByTestStream。这不是真正的解决方案,但很可能会解决您的问题-导入os.system(“gpg--homedir/home/user/.pgphome--output/home/user/myfile.zip.gpg--encrypt/home/user/myfile.zip”)