1
我有一個問題,如何加密zip類型的壓縮blob。由於某些原因,我無法使用chilkat模塊,因此zipfile模塊僅提供解密功能,所以我不知道如何使用密鑰對zip文件進行加密。如何加密應用程序引擎blobstore上的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中相同的文件類型。 謝謝你的幫助 – Peter
@Peter:壓縮加密文件可能沒有多大用處,因爲文件壓縮不好。將所有文件壓縮成單個Zip文件,然後單獨加密,會更好。 – rossum
@彼得也許如果你告訴我們你想達到的目標,我們可以提出一種方法。 –