Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/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
Python 如何在app engine blobstore上加密zip文件_Python_Google App Engine_Encryption_Zip_Blobstore - Fatal编程技术网

Python 如何在app engine blobstore上加密zip文件

Python 如何在app engine blobstore上加密zip文件,python,google-app-engine,encryption,zip,blobstore,Python,Google App Engine,Encryption,Zip,Blobstore,我有一个问题,如何加密压缩blob类型的zip。由于某些原因,我不能使用chilkat模块,zipfile模块只提供解密,所以我不知道使用什么来用密钥加密ZIP 你能给我一些如何解决这个问题的建议吗 理想的解决方案如下所示: blob_info = blobstore.BlobInfo.all()[0] #lets say we want to read the first blob we find blob_reader = blobstore.BlobReader(blob_info.key

我有一个问题,如何加密压缩blob类型的zip。由于某些原因,我不能使用chilkat模块,zipfile模块只提供解密,所以我不知道使用什么来用密钥加密ZIP

你能给我一些如何解决这个问题的建议吗

理想的解决方案如下所示:

blob_info = blobstore.BlobInfo.all()[0] #lets say we want to read the first blob we find
blob_reader = blobstore.BlobReader(blob_info.key())

file = zipfile.ZipFile(blob_reader, 'r')
data = file.read(file.namelist()[0])

output = StringIO.StringIO()
outfile = zipfile.ZipFile(output, "w")

outfile.writestr(file.namelist()[0], data)
outfile.setpassword('testpass') #it would be nice if there was a module that could set pass like this, .setpassword() only works with decryption

outfile.close()

outputStream = files.blobstore.create(mime_type='application/zip', _blobinfo_uploaded_filename = file.namelist()[0].split('.')[0] + '.zip')
with files.open(outputStream, 'a') as f:
    f.write(output.getvalue())
files.finalize(outputStream)

首先,请允许我说,zip加密是脆弱和过时的。如果你需要强大的安全性,你不应该依赖它。这已经在许多论文中得到了证明(谷歌称最流行的是Eli Biham和Paul C.Kocher的“已知的PKZIP流密码明文攻击”)

其次,GAE只适用于纯python的库。可能您不能使用chilkat,因为它是一个C库

第三,纯python中的zip文件加密/解密速度会非常慢,而且可能会出现GAE的CPU问题

也许你应该研究另一种方法来做到这一点


关于

首先,请允许我说,zip加密是脆弱和过时的。如果你需要强大的安全性,你不应该依赖它。这已经在许多论文中得到了证明(谷歌称最流行的是Eli Biham和Paul C.Kocher的“已知的PKZIP流密码明文攻击”)

其次,GAE只适用于纯python的库。可能您不能使用chilkat,因为它是一个C库

第三,纯python中的zip文件加密/解密速度会非常慢,而且可能会出现GAE的CPU问题

也许你应该研究另一种方法来做到这一点


我同意你的第一点。关于chilkat是另一个故事。。。但我不知道这会花这么多时间。另一个选择是分别加密每个文件,但问题是我不能确定用户在zip中是否会给我相同的文件类型。谢谢你的支持help@Peter:压缩加密文件可能不会有多大用处,因为这些文件不会很好地压缩。最好将所有文件压缩到一个单独的压缩文件中,然后分别加密。@Peter也许如果你告诉我们你想要实现什么,我们可以建议一种方法。在第一点上同意你的意见。关于chilkat是另一个故事。。。但我不知道这会花这么多时间。另一个选择是分别加密每个文件,但问题是我不能确定用户在zip中是否会给我相同的文件类型。谢谢你的支持help@Peter:压缩加密文件可能不会有多大用处,因为这些文件不会很好地压缩。最好将所有文件压缩到一个Zip文件中,然后分别加密。@Peter如果你告诉我们你想实现什么,我们可以建议一种方法。