2010-02-03 191 views

回答

5

提取很簡單,你只需要使用python 2.6引入的zipfile.ZipFile.setpassword(),但是標準的python庫不支持創建加密的zip文件。

有商業上可用的Python庫,它支持創建加密和密碼保護的zip文件。如果你想使用免費的東西,你需要使用標準的zip命令行工具。

拉鍊-e -Ppassword filename.zip的fileA FILEB ...

+1

Bollocks。 「」「ZipFile.setpassword(pwd) 將pwd設置爲默認密碼以提取加密文件。「」「」 它不會**創建​​一個帶有密碼的郵編 – 2010-03-01 12:46:45

+0

感謝提及約翰,我已經更新了條目來提到命令行實用程序解決方案 – 2010-03-02 21:04:37

+0

我沒有看到' -p''zip --help | grep -i -e'-p''不會返回任何結果(Ubuntu,Zip 3.0(2008年7月5日),Info-ZIP)我使用open-源解決方案在我的答案:http://stackoverflow.com/questions/2195747/python-code-to-create-a-password-encrypted-zip-file/2366917#2366917 – jfs 2010-03-02 21:44:47

1

如果Python是不是必須的,你可以使用系統工具,工具,如ZIP或RAR提供了密碼加密壓縮。帶-e選項的郵編,以及帶-p的rar

+2

你甚至可以從子進程調用這些工具從python .Popen – Nikwin 2010-03-01 15:18:28

22

要使用開源7-Zip工具創建加密的ZIP壓縮文件(名爲'myarchive.zip'):

rc = subprocess.call(['7z', 'a', '-pP4$$W0rd', '-y', 'myarchive.zip'] + 
        ['first_file.txt', 'second.file']) 

要安裝的7-Zip ,類型:

$ sudo apt-get install p7zip-full 

用手解壓縮(爲了闡明用拉鍊utitity兼容性),類型:

$ unzip myarchive.zip 

而在提示時輸入P4$$W0rd

或者在Python 2.6+相同:

>>> zipfile.ZipFile('myarchive.zip').extractall(pwd='P4$$W0rd') 
+2

+1 7-Zip也可以在Windows上運行,它支持很多壓縮/存檔格式,而不僅僅是zip。 – 2010-03-02 22:22:59

+0

zipfile.ZipFile不會創建一個加密的zip文件,它只能從加密的zip文件中讀取。如鏈接所述。 – shadowbq 2014-12-08 20:15:56

+0

@shado wbq:是的。 'ZipFile'可以*提取*(* unzip *)加密的檔案。如果它可以創建加密的檔案;你不需要'7z'工具。 'pyminizip'在2010年不存在。我不知道'pyminizip'有多麼方便(安裝)或可靠(與'7z'相比) - 它的開發狀態是* alpha *。 – jfs 2014-12-12 16:25:34

0

您可以使用Pygpgme創建一個密碼保護的GPG文件,該文件被壓縮。

你需要使用的 相當於GPG -c MYFILE 或 GPG --symmetric MYFILE 和 GPG myFile.gpg

我不知道是什麼等同是Python模塊中,但是我知道他們自0.2版以來就已經存在了。有一個錯誤報告,然後提到缺乏它,但有人發佈了一個補丁,他們修復了0.2版本。

這使用對稱加密,所以你不必擔心鍵。

你可能會發現我的帖子詢問如何在UbuntuForums上使用它。如果您知道,請隨時回答。