PGP在Ubuntu中用Python加密Zip文件
我定期在服务器上生成文件夹的zip文件,并将这些归档文件推送到存储服务器。为了遵守数据隐私法规,我们需要使用客户端提供的公钥对这些文件夹进行加密 我正在使用gnupg,并已将公钥导入服务器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文件的大小不同,并且不可读。例如
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”)