लिनक्स में किसी फ़ाइल या निर्देशिका को कैसे एन्क्रिप्ट करें?


26

लिनक्स में फ़ाइल या निर्देशिका को एन्क्रिप्ट करने जैसी सबसे लोकप्रिय कमांड क्या है?

जवाबों:


31

मुझे लगता है कि यह gpg होगा। फ़ाइलों और निर्देशिकाओं के लिए सिंटैक्स हालांकि भिन्न होता है।

एन्क्रिप्शन

फ़ाइलों के लिए (आउटपुट फ़ाइलनाम। Gpg):

gpg -c filename

Dirs के लिए:

gpg-zip -c -o file.gpg dirname

डिक्रिप्शन

फ़ाइलों के लिए (आउटपुट फ़ाइलनाम। Gpg):

gpg filename.gpg

Dirs के लिए:

gpg-zip -d file.gpg

संपादित करें: @ Mk12 के रूप में ठीक किया गया एन्क्रिप्शन / डिक्रिप्शन के लिए संपीड़न / अपघटन की गलती को इंगित करता है।


"एन्क्रिप्शन" और "डिक्रिप्शन" नहीं होना चाहिए?
mk12

किसी ने डायरेक्टरी को एन्क्रिप्ट करने का तरीका नहीं बताया है।
चॉवी

1
@chovy ऐसा नहीं है कि इसके ऊपर कहते हैं: dirs के लिए: gpg-zip -c -o file.gpg dirname
celebdor

@celebdor ने उस एक को याद किया। धन्यवाद। संपादित करें: जो मेरे लिए काम नहीं करता है। फ़ाइल को डिक्रिप्ट करने पर मुझे कुछ अजीब एन्क्रिप्टेड आउटपुट मिलता है।
chovy

@chovy: यह सुनने के लिए क्षमा करें। मैं पुष्टि कर सकता हूँ कि एन्क्रिप्टेड और डिक्रिप्टिंग निर्देशिका जैसा कि ऊपर दिखाया गया है, मेरे लिए काम किया, gpg-zip (GnuPG) 1.4.16 मिंट 17 के तहत।
माइकल शीपर

10
  • ओपनसेल के साथ

openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3

डिक्रिप्ट:

openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar

  • एईएस के साथ एन्क्रिप्ट

aescrypt -e -p password file.jpg

डिक्रिप्ट:

aescrypt -d -p password file.jpg.aes


1
+1 यह दिखाता है कि इसे ओपनस्स्ल के साथ कैसे करना है, जो कि सबसे अधिक संभावना है।
DevSolar

वास्तव में, लेकिन 3DES को असुरक्षित माना जाता है और इसका इस्तेमाल नहीं किया जाना चाहिए, AES (aescrypt) एक बेहतर विकल्प है, देखें: stackoverflow.com/questions/1619212/…
बजे

2

GnuPG की कोशिश करें

एन्क्रिप्ट करने के लिए: gpg -c filename

डिक्रिप्ट करने के लिए: gpg filename.gpg


2

यह मेरी विधि ओपनस् टल और टार का उपयोग कर रही है

एन्क्रिप्टेड निर्देशिका खोलें:

openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault

बंद एन्क्रिप्टेड निर्देशिका:

tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault

1
rm -rडेटा को नष्ट नहीं करता है; यह केवल इसे अनलिंक करता है। आपको srmडिस्क से डेटा मिटाने के लिए कुछ का उपयोग करने की आवश्यकता होगी ।
jbindel

2

मैं व्यक्तिगत रूप से aescryptज्यादातर उपयोग करता हूं ।

      aescrypt -e "File" 

और डिक्रिप्ट:

      aescrypt -d "File"

या वहाँ mcrypt है:

      mcrypt "File" 

और डिक्रिप्ट:

      mcrypt -d "File"

और एक निर्देशिका के लिए, मैं सुझाव देता हूं कि डीआईआर को टारगेट करना, और इसे एन्क्रिप्ट करना। फिर अनएन्क्रिप्ट करने के बाद, बस फाइल को अनटार करें:

      tar -cf "Dir.tar" Dir/

और असत्य करना

      tar -xf "Dir.tar"

1

यदि उच्चतम स्तर की सुरक्षा कोई बड़ी समस्या नहीं है (ज़िप का मैन पेज कहता है, कि zipfile उपयोगिताओं द्वारा उपयोग किया जाने वाला एन्क्रिप्शन एल्गोरिथ्म PGP से कमजोर है), तो मैं ज़िप और अनज़िप को प्राथमिकता देता हूं। यह एक ही समय में मेरी निर्देशिका और एनक्रिप्ट को पूरा करता है। मैं ज़िप पसंद करता हूं क्योंकि आपके पास एक तरह का वृद्धिशील ज़िप हो सकता है और फिर से पूरी चीज़ को ज़िप करने और एन्क्रिप्ट करने के बजाय एन्क्रिप्ट कर सकता है। विशेष रूप से यह उपयोगी है जब निर्देशिका आकार बहुत बड़े होते हैं।

ज़िप और एन्क्रिप्ट

zip file.zip file
zip -r directory.zip directory
zip --encrypt file.zip.enc file # prompt for password
zip --encrypt -r directory.zip.enc directory # prompt for password

अनज़िप और डिक्रिप्ट

unzip directory.zip.enc #Beware if any directory is present with the same name as the zipped file, then it would be overwritten. Hence I normally send the contents to another directory.

unzip directory.zip.enc -d directory-new # prompts for password

0

लोकप्रिय नहीं हो सकता है, लेकिन मैं कुछ बैश स्क्रिप्ट के उपयोग के माध्यम से न्यूनतम उपयोगकर्ता इंटरैक्शन के साथ कुछ भी एन्क्रिप्ट / डिक्रिप्ट करने के लिए एक परियोजना पर काम कर रहा हूं। यहाँ पर हाकिम का लिंक दिया गया है पोस्ट का जो परीक्षण के लिए सेटअप की व्याख्या करता है।

स्रोत कोड लॉजिक्स के माध्यम से काटना हालांकि यहां प्रत्येक प्रकार के डेटा के लिए क्या होता है जो उपरोक्त लिंक किए गए प्रोजेक्ट द्वारा नियंत्रित किया जा सकता है

_gnupg_encrypt_opts="--always-trust --armor --batch --encrypt --recipient user@host.domain"
 _bulk_output_dir="some_path"
_arbitrary_parsed_output="some_file.gpg"
## If file make encrypted time stamped file with similar name
_path_to_file="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_${_path_to_file##*/}.gpg"
cat "${_path_to_file}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if directory make compressed encrypted time stamped output file
_path_to_dir="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_dir.tgz.gpg
tar -cz - "${_path_to_dir}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if something else append encrypted output to file
_path_to_output="${_arbitrary_parsed_output}"
cat <<<"${_mapped_input}" | gpg ${gpg _gnupg_encrypt_opts} >> "${_path_to_output}"

${_mapped_input}चर एक पढ़ने के द्वारा निर्धारित है mkfifoनामित पाइप फ़ाइल और कुछ भी स्थापित करने के लिए एक सरणी पढ़ के साथ mapfile -t _lines < "${_file_to_map}"जो बाद में विस्तार किया है और एक में सहेजा जाता है${_mapped_input} ... थोड़ा घुमावदार लेकिन यह प्रायोगिक सुविधाओं के लिए अलग-अलग लाइनों पर कार्य करने के लिए अनुमति देता है। अंतिम परिणाम आप एन्क्रिप्टेड फ़ाइलों या संपीड़ित निर्देशिकाओं और एन्क्रिप्टेड डेटा के विभिन्न पैकेटों के साथ एक फ़ाइल रखने के लिए एक निर्देशिका के साथ समाप्त होते हैं।

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

_gnupg_decrypt_opts="--quiet --no-tty --always-trust --passphrase-fd 9 --decrypt"
_decryption_output_dir="some_directory"
# if file
exec 9<"${_pass[@]}"
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.gpg*}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} > "${_decryption_output_dir}/${_output_name}"
# else if compressed file
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tgz.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xzf -
cd "${_old_pwd}"
# else if non-compressed directory
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tar.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xf -
cd "${_old_pwd}"

यदि आप यह देखना चाहते हैं कि सार्वजनिक रूप से सत्यापित करने के लिए कौन-सी अन्य सुविधाएँ काम कर रही हैं और परीक्षण की जा रही हैं, तो ट्रैविस-सीआई बिल्ड लॉग की जाँच करें (विशेष रूप से लॉग्स के अंत के पास) आपको पता चलेगा कि कुछ अन्य फैंसी चीज़ों के संबंध में काम किया जा रहा है। लगभग किसी भी डेटा के एन्क्रिप्शन और डिक्रिप्शन के लिए।


0

फ़ाइनल क्रिप्ट का उपयोग करें - अनब्रेकेबल वन-टाइम पैड ओपनसोर्स फ़ाइल / निर्देशिका एन्क्रिप्शन (GUI और CLI)

यह अपने आप वन-टाइम पैड कीज बनाता है

java -cp FinalCrypt.jar rdj/CLUI --encrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/

पारण शब्द:

4 फाइलें पूरी तरह से 249,7 MiB एन्क्रिप्ट करना शुरू कर दिया

🔒 "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit" 🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" -> "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" 58,4% 🔒 "/ होम / रॉन / माय-टेस्ट-डायरेक्टरी / वीडियो / कैसल-वेक्सो-स्वेडेन.एमपी 4.बिट ”🖆 ✔ ✔ My My My 🗑✔--SH-256:” 8AEFC9744143451F32BBBAC6A4291BC76C747A6DA1EA06AAAAAAAA668AAA6666AAAA668A6666A6666A08666A /home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit "🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256:" 0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE "->" 266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C "95,7% 🔒 "/ घर / रॉन / मेरे टेस्ट-निर्देशिका / भाई dsmobile 700d_uke_usr.pdf.bit "🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256:" 8D718D2F29EF05BEB347D6920B3BFF5269685421B428E8D3ADFF569F67A716E0 "->" 88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E "100,0%

पूर्ण रूप से एन्क्रिप्टेड [4/4] फाइलें पूरी तरह से [249,7 MiB / 249,7 MiB] 7,3 सेकंड में (औसत: 34,2 MiB / s)

java -cp FinalCrypt.jar rdj/CLUI --decrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/

पारण शब्द:

4 फ़ाइलों को पूरी तरह से 124,9 MiB पर डिक्रिप्ट करना शुरू कर दिया

🔓 "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" -> "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" 32,8% 🔓 "/ घर / रॉन / मेरे टेस्ट-निर्देशिका / वीडियो / Eerebegraafplaats.mp4 "🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256:" D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA "->" C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA "91,2% 🔓" / घर / रॉन / मेरे टेस्ट -डायरेक्टरी / ब्रदर dsmobile 700d_uke_usr.pdf "" ory ✔ 🔓✔-: SHA-256: "88A98D893B6D1E540039D3E9BC0C0B19A20A20A209967F3235D5FEBF08", "###", "###" #, ",", ",", "# 8" "" "" "" "" "" "" "" "दोनों का उपयोग करने का प्रयास करें।/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf "🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256:" 266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C "->" 0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE "100,0%

पूरी तरह से डिक्रिप्टिंग [4/4] फाइलें पूरी तरह से [124,9 MiB / 124,9 MiB] 3,4 सेकंड में (औसत: 36,3 MiB / s)

इसमें GUI भी है

बस समुदाय की मदद करने की कोशिश कर रहा है ...



फ़ाइनल क्रिप्ट 5 ने ऑटो की को जोड़ा और स्वचालित रूप से ओटीपी कीज़ बनाता है इसलिए चर्चा स्कॉट का जिक्र है जो अब प्रासंगिक नहीं है
रॉन डे जोंग

मैं एक विवरण देखना चाहता हूं कि यह कैसे काम करता है जो अधिक तकनीकी और कम हाथ से लहराता है। मुद्दा यह है कि डेटा के प्रसारण के लिए एक-समय के पैड (1) महान हैं , और भंडारण के लिए घटिया  , और (2) यादृच्छिक होना चाहिए  यदि फाइनल क्रिप्टो के ओटीपी वास्तव में यादृच्छिक हैं, तो उन्हें संग्रहीत किया जाना चाहिए , जो सुरक्षा से समझौता करता है। यदि उन्हें पुनर्जीवित किया जा सकता है, तो वे यादृच्छिक नहीं हैं, लेकिन केवल छद्म यादृच्छिक हैं, और इसलिए वे उचित ओटीपी नहीं हैं। … (Cont'd)
स्कॉट

(Cont'd) ... ऑटो कुंजी प्रबंधन पर उनका पृष्ठ  इंगित करता है कि OTP को एक वियोज्य बाहरी (USB) ड्राइव पर संग्रहीत किया जाता है। “ठीक है, यह काम कर सकता है। लेकिन, अगर आपको अपनी USB ड्राइव को हर बार संलग्न करना है, तो आप अपनी फ़ाइल को डिक्रिप्ट करना चाहते हैं (और यह देखते हुए कि OTP कम से कम उतना ही बड़ा होना चाहिए जितना फ़ाइल इसे एन्क्रिप्ट करता है), आप अपनी फ़ाइलों को हटाने योग्य ड्राइव पर स्टोर कर सकते हैं और एन्क्रिप्शन से परेशान न हों। … (Cont'd)
स्कॉट

(Cont'd)… इसके अलावा, मुख्य FinalCrypt पेज का कहना है कि "सबसे क्रिप्टो सॉफ्टवेयर टूटे हुए एईएस का उपयोग करता है ...", लेकिन दावा है कि एईएस "टूटा हुआ" बहुत अतिरंजित लगता है। संबंधित: एईएस को सुरक्षित क्यों माना जाता है? (  क्रिप्टोग्राफी स्टैक एक्सचेंज पर )।
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.