سؤال كيف تحمي كلمة المرور ملفات gzip على سطر الأوامر؟


أرغب في إنشاء ملفات tar.gz (وربما tar.bz2) ، باستخدام الأمر tar في Ubuntu 10.04.

أريد كلمة مرور لحماية الملف.

ما هو الأمر للقيام بذلك (لدي Googled ، ولكن وجدت شيئا يدل على كيفية إنشاء واستخراج الملفات المضغوطة باستخدام كلمة مرور).

أي شخص يعرف كيف يفعل هذا؟


113
2017-07-12 12:50


الأصل




الأجوبة:


يجب عليك تطبيق فلسفة unix على هذه المهمة: أداة واحدة لكل مهمة.

tarring والضغط هو وظيفة ل 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 مزيجًا من التشفير المتعاقب والتشفير اللاتيني ، فإنك تستخدم مفتاح الطرف المتلقي (مما يعني أنك لست مضطرًا لإخبار أي كلمة مرور مرتبطة بأي شخص) لإنشاء مفتاح جلسة عمل وغلق المحتوى باستخدام هذا المفتاح.

إذا قمت بالانتقال إلى مسار zip (أو 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
KeithSmiley إذا كان لديك أرشيفات كبيرة وليس الكثير من المساحة (مثلما يمكن أن يكون على VPS) فهو أكثر فعالية من حيث المساحة للأنابيب. - Andrew Savinykh
لا أستطيع تشغيل هذا على جهاز ماكنتوش. هل هذا مختلف في أي حال؟ - eleijonmarck
eleijonmarck توفر الجزء "لا يعمل بسبب <insert-error-message-here>"… - akira


إذا كان هدفك هو حماية الملفات بكلمة مرور ، فاستخدم الأداة المساعدة اليدوية من خلال سطر الأوامر

zip -e <file_name>.zip <list_of_files>

-e يسأل الأداة المساعدة zip لتشفير الملفات المذكورة في

مثال العمل:

$ 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
KristopherIves يمكنك توضيح على unsafeness؟ - tscizzle
tscizzle unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-readme.html - Kristopher Ives
KristopherIves يتطلب "أرشيف ZIP آخر ، يحتوي على واحد على الأقل من الملفات من الأرشيف المشفر في غير مشفرة شكل "للعمل. - Franklin Yu
"تحتاج إلى معرفة جزء فقط من النص العادي (13 بايت على الأقل)". هذا يجعلها كثير أكثر عرضة مما لو كان ملف كامل غير مشفر مطلوبًا (وهو أمر سيئ بالفعل). أيضا ، التشفير البريدي غير مقاوم لهجمات القوة الغاشمة (على سبيل المثال مع Jack the Ripper). لا ينبغي لأحد استخدامه لأي شيء خطير. - EM0


فيما يلي بعض الطرق للقيام بذلك. شيء واحد هو أن نلاحظ أنه إذا كنت ستستخدم أدوات ضغط وتشفير منفصلة ، فيجب عليك دائمًا الضغط قبل التشفير ، لأن البيانات المشفرة غير قابلة للضغط بشكل أساسي.

تقوم هذه الأمثلة بضغط وتشفير ملف يسمى clear_text.

عن طريق gpg

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

سيقوم gpg بضغط ملف الإدخال قبل التشفير بشكل افتراضي ، -c يعني استخدام التشفير المتماثل بكلمة مرور. سيكون ملف الإخراج clear_text.gpg. فائدة واحدة من استخدام gpg هو أنه يستخدم تنسيقات OpenPGP القياسية ، لذلك فإن أي برنامج تشفير يدعم OpenPGP سيكون قادراً على فك تشفيره.

عن طريق 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

aespipe هو ما يبدو ، وهو البرنامج الذي يأخذ المدخلات على stdin والمخرجات البيانات المشفرة على المعياري. لا يدعم الضغط ، لذا يمكنك توجيه الإدخال عبر gzip أولاً. نظرًا لأن الناتج يتم نقله إلى stdout ، فيجب عليك إعادة توجيهه إلى ملف باسم من اختيارك. ربما لا تكون الطريقة الأكثر فاعلية لفعل ما تطلبه ولكن aespipe هي أداة متعددة الاستخدامات لذا اعتقدت أنه من الجدير بالذكر.


15
2018-05-01 01:38





يمكنك استخدام 7zip لإنشاء أرشيف محمية بكلمة مرور. يمكنك تحديد كلمة المرور على سطر الأوامر (أو في برنامج نصي) بالطريقة التالية:

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

7ZIP يمكن أيضا قراءة من STDIN على النحو التالي:

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

إذا كان من الإلزامي استخدام ملفات zip ، فقد تحتاج إلى اللعب مع -t<type>المعلمة (على سبيل المثال -tzip).


10
2017-10-17 09:52



اخترت هذا كإجابة لأنه هو الوحيد الذي يجيب على السؤال. السؤال ليس كيفية تشفير رسالة ، إنها طريقة حماية كلمة مرور للأرشيف. هذا كل ما احتاجه (كان Gmail يحظر النسخ الاحتياطية للخادم لأنه قرر وجود شيء غير آمن في المرفق ، وكنت بحاجة فقط إلى إضافة كلمة مرور. ولا يلزم أن يكون ذلك آمنًا.) - felwithe


لا يدعم tar أو gzip أو bzip2 الحماية بكلمة مرور. إما أن تستخدم تنسيق ضغط ، مثل الرمز البريدي ، أو تشفيرها باستخدام أداة أخرى مثل GnuPG.


7
2017-07-12 12:52



آه ، هذا يفسر لماذا لم أتمكن من العثور على أي شيء عبر الإنترنت. أعتقد أنني سأذهب إلى الرمز البريدي. - morpheous
Gah! ، أحاول بشكل متكرر ضغط دليل باستخدام passwors ، ولا يؤدي إلا إلى إنشاء ملف مضغوط باسم 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