मैं AES-256 का उपयोग करके किसी फ़ाइल को एन्क्रिप्ट करना चाहता हूं। मैं इसे जल्दी और आसानी से कैसे कर सकता हूं, और मैं कैसे कर सकता हूं - या किसी और को फिर से इसे एन्क्रिप्ट कर सकता हूं?
मैं AES-256 का उपयोग करके किसी फ़ाइल को एन्क्रिप्ट करना चाहता हूं। मैं इसे जल्दी और आसानी से कैसे कर सकता हूं, और मैं कैसे कर सकता हूं - या किसी और को फिर से इसे एन्क्रिप्ट कर सकता हूं?
जवाबों:
दुर्भाग्य से, अपना सामान हासिल करने का कोई आसान उपाय नहीं है। अपने उपयोग के मामले के बारे में सोचें, शायद सादे एईएस के अलावा कुछ बेहतर अनुकूल है।
यदि आप बहुत ही सरल प्लेटफ़ॉर्म स्वतंत्र एन्क्रिप्शन चाहते हैं, तो आप ओपनसेल का उपयोग कर सकते हैं ।
यदि आप अभी भी खुलता है का उपयोग करना चाहते हैं:
एन्क्रिप्शन:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
डिक्रिप्शन:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
आप एन्क्रिप्शन और डिक्रिप्शन दोनों पर स्विच base64
का उपयोग करके संदेश को ओपन-एसएल प्राप्त कर सकते हैं -a
। इस तरह, आप ईमेल संदेश में सिफरटेक्स्ट पेस्ट कर सकते हैं, उदाहरण के लिए। यह इस तरह दिखेगा:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
ध्यान दें कि आपके पास सिफर और ऑपरेशन के तरीके हैं। सामान्य उपयोग के लिए, मैं सीबीसी मोड में एईएस 256 की सिफारिश करता हूं। ये आपके द्वारा उपलब्ध सिफर मोड हैं (केवल एईएस की गिनती):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
यह सभी देखें:
कृपया ध्यान दें:
OpenSSL आपसे पासवर्ड मांगेगा। यह एक एन्क्रिप्शन कुंजी नहीं है, यह 32 बाइट्स तक सीमित नहीं है! यदि आप फ़ाइलों को किसी और के साथ स्थानांतरित करने जा रहे हैं, तो आपका साझा रहस्य बहुत मजबूत होना चाहिए। आप इस साइट का उपयोग यह जानने के लिए कर सकते हैं कि आपका पासवर्ड कितना अच्छा है:
चेतावनी: मैंने जाँच की है कि ये साइट आपके पासवर्ड को सर्वर पर नहीं भेजती हैं, लेकिन कभी भी बदल सकती हैं। देव टूल / इंस्पेक्टर के साथ इन साइटों का उपयोग करें और जांचें कि क्या वे आपके मजबूत पासवर्ड में टाइप करने से पहले कुछ भी भेजते हैं।
/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
जैसा कि आप अपेक्षा करेंगे उल्टा होगा।
openssl
कमांड लाइन उपकरण ज्यादातर ओपनएसएसएल पुस्तकालय के परीक्षण के लिए एक सबूत-की-अवधारणा है। इस प्रश्न का सही उत्तर या तो GPG या कुछ आर्काइव है जैसे 7z ।
openssl enc
यदि आपके पास कमजोर पासवर्ड है तो वास्तव में वह सुरक्षित नहीं है। मैंने पहले कुछ उपयोग की सिफारिश की थी openssl enc
, लेकिन अब gpg
इसके बजाय उपयोग करने का सुझाव देता हूं क्योंकि यह एक बेहतर तरीके से केडीएफ का उपयोग करता है। इस जवाब को देखें ।
मुझे gpg
कमांड का उपयोग करना पसंद है :
एन्क्रिप्ट करें:
gpg --cipher-algo AES256 --symmetric filename.tar.gz
आशुलिपि:
gpg --cipher-algo AES256 -c filename.tar.gz
यह एक पासफ़्रेज़ के लिए पूछेगा।
डिक्रिप्ट:
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
आशुलिपि:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
आप AES256 को डिफ़ॉल्ट बनाने के cipher-algo AES256
लिए भी जोड़ सकते हैं ~/.gnupg/gpg.conf
। (मैनपेज के अनुसार यह CAST5 है )
AES
(मतलब एईएस -128)। एईएस -128 थोड़ा तेज है और कम सुरक्षित नहीं है।
gpg
पासवर्ड कैशिंग से कैसे रोक सकता हूं ?
7z (जब पासवर्ड विकल्प का उपयोग किया जाता है) 256bit एईएस एन्क्रिप्शन (SHA256 कुंजी खींच के साथ) का उपयोग करता है ।
इसे स्थापित करें ( p7zip-full
), उस फ़ाइल या निर्देशिका पर राइट क्लिक करें जिसे आप एन्क्रिप्ट करना चाहते हैं, और कंप्रेस , .7z और अन्य विकल्प / पासवर्ड चुनें ।
डिक्रिप्शन के लिए, .7z फ़ाइल पर राइट क्लिक करें और यहाँ एक्सट्रैक्ट चुनें ।
लिंक की गई वेबसाइट में एक ओपन-सोर्स 256-बिट एसेस इनक्रिप्ट / डिक्रिप्ट टूल है और यह मल्टीप्लाकॉर्डर है - मैकओएस, विंडोज, लिनक्स और अन्य जावा के माध्यम से।
एन्क्रिप्ट करें: aescrypt -e <file>
डिक्रिप्ट: aescrypt -d <file>
आप सिंटैक्स का उपयोग करके अपने होम फ़ोल्डर को बैकअप और एन्क्रिप्ट कर सकते हैं:
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
स्रोत को डाउनलोड करें और निकालें
make
sudo make install
वेबसाइट से बायनेरिज़ या सोर्स-कोड डाउनलोड करें।
मेरे द्वारा सुझाए गए बहुत सारे सुझाव इस धागे में पहले ही सामने आ चुके हैं। असल में, किसी फाइल या स्क्रिप्ट को एन्क्रिप्ट करने के बारे में ओपनसेल वास्तव में सबसे आसान तरीका है। हालांकि, मैं एईएस -256 का उपयोग करने के खिलाफ सावधानी बरतूंगा क्योंकि यह कुछ प्लेटफार्मों पर ओपनसेल के सभी संस्करणों में उपलब्ध नहीं है । सबसे नए OSes ... यानी Linux के पास है। लेकिन अन्य जैसे कि AIX 5.3 नहीं है (मुझे लगता है कि एचपी-यूएक्स के रूप में अच्छी तरह से)। यदि आप विभिन्न प्लेटफार्मों में अपनी फ़ाइल या स्क्रिप्ट का उपयोग करने का इरादा रखते हैं, तो मैं AES-128 का उपयोग करने की दृढ़ता से सलाह देता हूं क्योंकि यह हर जगह उपलब्ध है।
आप AES-128 का उपयोग करके किसी फ़ाइल को कैसे "जल्दी और आसानी से" एन्क्रिप्ट कर सकते हैं?
Www.ShellScrypt.com जैसी साइट खोल स्क्रिप्ट को एन्क्रिप्ट करने के लिए काफी तीव्रता से ओपनएसएल एईएस -128 का उपयोग करती है और फिर स्क्रिप्ट की एन्क्रिप्टेड प्रतियां निष्पादन योग्य बनाती है। आपको बस स्क्रिप्ट को साइट पर पेस्ट करना है, और आपके लिए एक जिप फाइल बन जाएगी। उस ज़िप फ़ाइल में एन्क्रिप्टेड (और निष्पादन योग्य होगा यदि वह आपकी फ़ाइल का स्क्रिप्ट) संस्करण है। यह आपको "की अनुमति देता है आसानी से " और " आसानी से " फ़ाइल / लिपि हर प्रणाली आप पर स्क्रिप्ट का उपयोग या openssl आदेशों के कई जटिल और भ्रामक मंत्र चलाना चाहते हैं पर कोई पैकेज या मॉड्यूल आवश्यकता को पूरा करने के बिना एन्क्रिप्ट।
नीचे दिखाया गया एक मूल एन्क्रिप्ट / डिक्रिप्ट ओपनसेल कमांड है जो एईएस -128 का उपयोग करता है:
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$
स्टेफानो पलाज़ो के जवाब में जोड़ते हुए, मैंने थोड़ा बैश फ़ंक्शन बनाया जो बेस 64 कमांड के समान काम करता है।
यह aes256 फ़ाइल को एन्क्रिप्ट करेगा, और फिर बेस 64 इसे एनकोड करेगा। रिवर्स करते समय, यह6464 डीकोड, डिक्रिप्ट और मूल प्लेटेक्स्ट को थूक देगा।
aes256() {
decodeMe=""
isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"
if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
decodeMe="-d"
shift
fi
if [ "$isPipe" = "true" ]; then
read input
printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
exitCode="$?"
else
openssl aes-256-cbc -a $decodeMe -in "$*"
exitCode="$?"
fi
unset isPipe decodeMe input
return "$exitCode"
}
उपयोग:
echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=
echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string
aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password
aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
openssl aes-256-cbc
से छोटा हैopenssl enc -aes-256-cbc
और काम भी करता है। इसके लिए मैनुअल पेज रन करके उपलब्ध हैman enc
। कभी भी ऐसेecb
डेटा का उपयोग न करें , जिनके साथ गुस्सा न हो, हमेशा उपयोग करेंcbc
।-salt
डिफ़ॉल्ट होने के बाद से यह बेमानी है। यदि आप छोड़ते हैं-out filename
तो आउटपुट मानक आउटपुट को लिखा जाएगा जो उपयोगी है यदि आपको डेटा का विश्लेषण करने की आवश्यकता है, लेकिन इसे डिस्क पर न लिखें। यह अगले आदेश को प्लेनटेक्स्ट के लिए लाइन काउंड दिखाता हैopenssl aes-256-cbc -d -in filename | wc -l
:। (एक और उपयोग करते हैं, एक फ़ाइल को पढ़ने:openssl aes-256-cbc -d -in filename | less
)