सवाल कमांड लाइन पर gzip फ़ाइलों को पासवर्ड कैसे सुरक्षित करें?


मैं उबंटू 10.04 पर टैर कमांड का उपयोग करके कुछ tar.gz (और संभवतः tar.bz2) फ़ाइलों को बनाना चाहता हूं।

मैं पासवर्ड को फ़ाइल की रक्षा करना चाहता हूं।

ऐसा करने का आदेश क्या है (मैंने गुगल किया है, लेकिन कुछ भी नहीं मिला जो दिखाता है कि पासवर्ड का उपयोग करके संपीड़ित फ़ाइलों को कैसे बनाएं और निकालें)।

कोई भी जानता है कि यह कैसे करें?


113
2017-07-12 12:50


मूल




जवाब:


आपको इस कार्य में यूनिक्स-दर्शन लागू करना होगा: प्रत्येक कार्य के लिए एक उपकरण।

टैरिंग और संपीड़न के लिए एक नौकरी है tar तथा gzip या bzip2, क्रिप्टो या तो नौकरी है gpg या openssl:

एन्क्रिप्ट

 % tar cz folder_to_encrypt | \
      openssl enc -aes-256-cbc -e > out.tar.gz.enc

डिक्रिप्ट

 % openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz

या जीपीजी का उपयोग कर

 % gpg --encrypt out.tar.gz

openssl-variant सममित एन्क्रिप्शन का उपयोग करता है, आपको प्राप्तकर्ता 'को' पासवर्ड '(उर्फ' कुंजी ') के बारे में बताना होगा। gpg-variant सममित और एसिमेट्रिक एन्क्रिप्शन के संयोजन का उपयोग करता है, आप सत्र कुंजी बनाने और उस कुंजी के साथ सामग्री को क्रिप्ट करने के लिए प्राप्तकर्ता पार्टी की कुंजी का उपयोग करते हैं (जिसका अर्थ है कि आपको किसी से जुड़े किसी भी पासवर्ड को बताना नहीं है)।

यदि आप ज़िप (या 7z) मार्ग पर जाते हैं: अनिवार्य रूप से यह openssl-variant जैसा ही है, तो आपको प्राप्तकर्ता को पासवर्ड के बारे में बताना होगा।


137
2017-07-12 13:05



किसी को भी यह सोचने के लिए कि openssl के साथ फ़ाइल को डिक्रिप्ट कैसे करें: openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz - ndbroadbent
@ nathan.f77 वह कमांड यह भी दिखाता है कि उन्हें openssl में पाइप किए बिना चीजें कैसे करें। openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc - Keith Smiley
@ किथस्मिली यदि आपके पास बड़े अभिलेखागार हैं और बहुत सी जगह नहीं है (जैसे यह एक वीपीएस पर हो सकती है) यह पाइप के लिए अधिक जगह-कुशल है। - Andrew Savinykh
मैं इसे मैक पर चलाने के लिए प्रतीत नहीं कर सकता। क्या यह वैसे भी अलग है? - eleijonmarck
@eleijonmarck भाग प्रदान करता है "काम नहीं करता है क्योंकि <insert-error-message-here>" ... - akira


यदि आपका इरादा सिर्फ पासवर्ड की रक्षा करने के लिए है, तो कमांड लाइन के माध्यम से हाथ ज़िप उपयोगिता का उपयोग करें

zip -e <file_name>.zip <list_of_files>

- में उल्लिखित फ़ाइलों को एन्क्रिप्ट करने के लिए ज़िप उपयोगिता पूछता है

कार्य उदाहरण:

$ touch file_{0,1}.txt # creates blank files file_0 & file_1    
$ zip -e file.zip file_* # ask zip to encrypt
$ ENTER PASSWORD:
$ VERIFY PASSWORD:
$ ls file*

27
2018-06-17 20:12



ज़िप फ़ाइल एन्क्रिप्शन किसी भी तरह से सुरक्षित नहीं है। - Kristopher Ives
@ क्रिस्टोफर क्या आप असुरक्षा पर विस्तार कर सकते हैं? - tscizzle
@tscizzle unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-readme.html - Kristopher Ives
@ क्रिस्टोफर इव्स के लिए "एक और ज़िप-संग्रह की आवश्यकता है, जिसमें एन्क्रिप्टेड संग्रह से कम से कम एक फाइल शामिल है एन्क्रिप्ट नहीं किए गए फॉर्म "काम करने के लिए। - Franklin Yu
"आपको सादे टेक्स्ट (कम से कम 13 बाइट्स) का केवल एक हिस्सा जानने की जरूरत है"। यह बनाता है बहुत एक पूरी अनएन्क्रिप्टेड फ़ाइल की आवश्यकता होने की तुलना में अधिक कमजोर (जो पहले से ही बहुत खराब है)। इसके अलावा, ज़िप एन्क्रिप्शन ब्रूट-फोर्स हमलों के लिए प्रतिरोधी नहीं है (उदाहरण के लिए जैक द रिपर के साथ)। किसी भी गंभीर के लिए इसका इस्तेमाल नहीं करना चाहिए। - EM0


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

ये उदाहरण कॉल की गई फ़ाइल को संकुचित और एन्क्रिप्ट करते हैं clear_text

का उपयोग करते हुए gpg

$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress

जीपीजी डिफ़ॉल्ट रूप से एन्क्रिप्शन से पहले इनपुट फ़ाइल को संपीड़ित करेगा, -c पासवर्ड के साथ सममित एन्क्रिप्शन का उपयोग करने का मतलब है। आउटपुट फाइल होगी clear_text.gpg। उपयोग करने का एक लाभ gpg यह मानक ओपनपीजीपी प्रारूपों का उपयोग करता है, इसलिए ओपनपीजीपी का समर्थन करने वाला कोई भी एन्क्रिप्शन सॉफ्टवेयर इसे डिक्रिप्ट करने में सक्षम होगा।

का उपयोग करते हुए mcrypt

$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress

-z विकल्प संपीड़ित करता है। डिफ़ॉल्ट रूप से यह एक फ़ाइल को आउटपुट करता है clear_text.gz.nc

का उपयोग करते हुए bcrypt

$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress

डिफ़ॉल्ट रूप से एन्क्रिप्ट करने से पहले bcrypt संपीड़ित करता है, -r विकल्प ऐसा है कि प्रक्रिया में इनपुट फ़ाइल को हटाया नहीं गया है। आउटपुट फ़ाइल कहा जाता है clear_text.bfe डिफ़ॉल्ट रूप से।

का उपयोग करते हुए gzip तथा aespipe

$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress

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


15
2018-05-01 01:38





आप अपना पासवर्ड संरक्षित संग्रह बनाने के लिए 7zip का उपयोग कर सकते हैं। आप कमांड लाइन (या एक स्क्रिप्ट में) पर पासवर्ड निर्दिष्ट कर सकते हैं:

7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt

निम्नानुसार एसटीडीआईएन से 7 जीआईपी भी पढ़ सकते हैं:

cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z

यदि ज़िप फ़ाइलों का उपयोग करना अनिवार्य है, तो आप इसके साथ खेलना चाहेंगे -t<type>पैरामीटर (उदा। -tzip)।


10
2017-10-17 09:52



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


न तो tar, gzip, nor bzip2 पासवर्ड सुरक्षा का समर्थन करता है। या तो एक संपीड़न प्रारूप का उपयोग करें जो ज़िप करता है, या इसे किसी अन्य टूल जैसे जीएनयूपीजी से एन्क्रिप्ट करता है।


7
2017-07-12 12:52



आह, यह बताता है कि मुझे ऑनलाइन कुछ भी क्यों नहीं मिला। मुझे लगता है कि मैं ज़िप के लिए जाऊंगा। - morpheous
गह !, मैं पासवर्ड्स के साथ एक निर्देशिका को दोबारा जोड़ने की कोशिश कर रहा हूं, और यह केवल एक ज़िप फ़ाइल को foobar नाम के साथ एक (खाली) निर्देशिका के रूप में बनाता है। यहां वह आदेश है जिसका मैं उपयोग कर रहा हूं: zip -e foobar.zip foobar। foobar वर्तमान निर्देशिका में एक गैर खाली फ़ोल्डर है - morpheous
जैसे आदमी कहता है, -r। - Ignacio Vazquez-Abrams


इसके साथ बनाएँ:

tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg

यह आपको पासवर्ड के लिए पूछेगा।

के साथ डिक्रिप्ट करें:

gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -

3
2018-05-23 12:25