2010-02-03 14 views
11

पासवर्ड एन्क्रिप्टेड ज़िप फ़ाइल बनाने के लिए पाइथन कोड क्या है? मैं कमांड लाइन पर सिस्टम का उपयोग कर कुछ apt-get'able उपयोगिताओं का उपयोग करने के साथ ठीक हूँ।पासवर्ड एन्क्रिप्टेड ज़िप फ़ाइल बनाने के लिए पायथन कोड?

उत्तर

5

निष्कर्षण बहुत आसान है, आप केवल zipfile.ZipFile.setpassword() का उपयोग करते हैं जिसे पायथन 2.6 में पेश किया गया था, हालांकि मानक पायथन लाइब्रेरी में एन्क्रिप्टेड ज़िप फ़ाइलों को बनाने के लिए समर्थन नहीं है।

पाइथन के लिए व्यावसायिक रूप से उपलब्ध पुस्तकालय हैं जो एन्क्रिप्टेड और पासवर्ड संरक्षित ज़िप फ़ाइलों के निर्माण का समर्थन करते हैं। यदि आप कुछ मुफ्त में उपलब्ध उपयोग करना चाहते हैं, तो आपको मानक zip कमांड लाइन उपयोगिता का उपयोग करने की आवश्यकता है।

ज़िप -Ppassword filename.zip fileA fileB -e ...

+1

बोल्क्स। "" "ZipFile.setpassword (pwd) एन्क्रिप्टेड फ़ाइलों को निकालने के लिए डिफ़ॉल्ट पासवर्ड के रूप में pwd सेट करें।"" यह ** ** पासवर्ड के साथ एक ज़िप बनाने के लिए ** नहीं करता है। –

+0

जॉन का उल्लेख करने के लिए धन्यवाद, मैंने इसके बजाय एक कमांड लाइन उपयोगिता समाधान का उल्लेख करने के लिए प्रविष्टि को अद्यतन किया है। –

+0

मुझे ' -पी' मानक 'ज़िप' उपयोगिता पर। 'ज़िप --help | grep -i -e' -p'' कुछ भी नहीं लौटाता है (उबंटू, ज़िप 3.0 (5 जुलाई 2008), इन्फो-ज़िप द्वारा)। मैं खुले- मेरे उत्तर में स्रोत समाधान: http://stackoverflow.com/questions/2195747/python-code-to-create-a-password-encrypted-zip-file/2366917#2366917 – jfs

1

अगर पायथन बहुत जरूरी नहीं है और आप ज़िप की तरह प्रणाली उपयोगिताओं, उपकरणों का उपयोग कर सकते हैं या rar पासवर्ड एन्क्रिप्टेड संपीड़न प्रदान करता है। -ई विकल्प के साथ ज़िप, और rar के साथ -पी।

+2

आप इन उपकरणों को अजगर के साथ अजगर से भी कॉल कर सकते हैं .Popen – Nikwin

3

असल में सेटपासवर्ड ("yourpassword") केवल ज़िप फ़ाइल बनाने के लिए निकालने के लिए मान्य है।

समाधान (मेरी पसंद के हिसाब से नहीं):

Create an encrypted ZIP file in Python

22

एन्क्रिप्टेड ज़िप संग्रह ('myarchive.zip' नाम) बनाने के लिए खुला स्रोत का उपयोग कर 7-Zip उपयोगिता:

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

7-पिन स्थापित करने के लिए , टाइप करें:

$ sudo apt-get install p7zip-full 

हाथ से अनज़िप करने के लिए (ज़िप UTITITY के साथ संगतता प्रदर्शित करने के लिए), टाइप करें:

$ unzip myarchive.zip 

और प्रॉम्प्ट पर P4$$W0rd दर्ज करें।

या अजगर 2.6+ में एक ही:

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

+1 7-ज़िप विंडोज पर भी उपलब्ध है। यह कई संपीड़न/संग्रह प्रारूपों का समर्थन करता है, न केवल ज़िप। –

+0

zipfile.ZipFile एन्क्रिप्टेड ज़िप फ़ाइल नहीं बनाता है। यह केवल एन्क्रिप्टेड ज़िप फ़ाइलों से पढ़ सकता है। Pyminizip यह करता है जैसा कि लिंक में बताया गया है। – shadowbq

+0

@shado wbq: हाँ। 'ZipFile' * एन्क्रिप्टेड संग्रह * (* unzip *) निकाल सकता है। अगर यह एन्क्रिप्टेड अभिलेखागार बना सकता है; आपको '7z' उपयोगिता की आवश्यकता नहीं होगी। 'pyminizip' 2010 में अस्तित्व में नहीं है। मुझे नहीं पता कि कितना सुविधाजनक (स्थापित करना) या विश्वसनीय (' 7z' की तुलना में) 'pyminizip' है - इसकी विकास स्थिति * अल्फा * है। – jfs

0

आप एक पासवर्ड से सुरक्षित GPG फ़ाइल है, जो संकुचित है बनाने के लिए Pygpgme उपयोग कर सकते हैं।

आप के बराबर का उपयोग करना होगा GPG -c myFile या GPG --symmetric myFile और GPG myFile.gpg

मैं नहीं जानता कि क्या समकक्ष कि पायथन मॉड्यूल में हैं , लेकिन मुझे पता है कि वे संस्करण 0.2 के बाद से मौजूद हैं। इसके बाद इसकी कमी का उल्लेख करने से पहले एक बग रिपोर्ट थी, लेकिन किसी ने पैच जारी किया और उन्होंने इसे संस्करण 0.2 में तय किया।

यह सममित एन्क्रिप्शन का उपयोग करता है ताकि आपको कुंजी के बारे में चिंता न करें।

आपको मेरी पोस्ट मिल सकती है कि उबंटूफोरम्स पर इसका उपयोग कैसे करें। यदि आप जानते हैं तो इसका उत्तर देने के लिए स्वतंत्र महसूस करें।

संबंधित मुद्दे