डिक्रिप्शन के लिए कमांड लाइन के जरिए पासवर्ड तर्क का उपयोग कैसे करता है


54

इसलिए कमांड लाइन तर्क के माध्यम से पासवर्ड पास करना सबसे सुरक्षित अभ्यास नहीं है। उस ने कहा, ओप्सनल के लिए दस्तावेज़ीकरण ने मुझे इस बात पर भ्रमित कर दिया कि ओपनस्एल कमांड में पासवर्ड तर्क कैसे पारित किया जाए।

यहाँ मैं क्या करने की कोशिश कर रहा हूँ

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

यह तब डिक्रिप्शन के लिए पास कुंजी के लिए संकेत देता है। मैंने खुलने के दस्तावेजों और इंटरव्यू को खोजने की कोशिश की और जवाब ढूंढने की कोशिश की कि क्या मैं बस पासवर्ड को फाइल में इको करने की कोशिश किए बिना कमांड को पासवर्ड देना चाहता हूं। मैंने बिना किसी लाभ के उद्धरणों के साथ -pass:somepasswordऔर -pass somepasswordदोनों को जोड़ने की कोशिश की ।

मैंने आखिरकार उत्तर का पता लगा लिया और देखा कि कुछ अन्य मंचों पर लोगों के समान प्रश्न थे, इसलिए मैंने सोचा कि मैं अपने प्रश्न और उत्तर यहां समुदाय के लिए पोस्ट करूंगा।

नोट: मैं खुलता संस्करण 0.9.8y का उपयोग कर रहा हूँ

जवाबों:


108

प्रलेखन मेरे लिए बहुत स्पष्ट नहीं था, लेकिन इसका जवाब था, चुनौती एक उदाहरण देखने में सक्षम नहीं थी।

यह कैसे करना है:

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword

ध्यान दें कि कमांड लाइन कमांड सिंटैक्स का हमेशा -passएक स्थान और उसके बाद आपके द्वारा प्रदान किया जाने वाला पासफ़्रेज़ का प्रकार होता है, अर्थात pass:सादे पासफ़्रेज़ के लिए और फिर बिना किसी स्थान के कोलन के बाद वास्तविक पासफ़्रेज़।

इसके अतिरिक्त प्रलेखन निर्दिष्ट करता है कि आप निम्नलिखित कार्य करके अन्य पासफ़्रेज़ स्रोत प्रदान कर सकते हैं:

  • env:somevar पर्यावरण चर से पासवर्ड प्राप्त करने के लिए
  • file:somepathname स्थान पर फ़ाइल की पहली पंक्ति से पासवर्ड प्राप्त करने के लिए pathname
  • fd:number फ़ाइल डिस्क्रिप्टर नंबर से पासवर्ड प्राप्त करने के लिए।
  • stdin मानक इनपुट से पढ़ने के लिए

अब जब मैंने यह प्रश्न और उत्तर लिख दिया है, तो यह सब स्पष्ट प्रतीत होता है। लेकिन निश्चित रूप से यह पता लगाने में कुछ समय लगा और मैंने देखा कि यह दूसरों को भी इसी तरह का समय लगता है, इसलिए उम्मीद है कि यह उस समय में कटौती कर सकता है और दूसरों के लिए तेजी से जवाब दे सकता है! :)

OpenSSL के साथ 1.0.1e उपयोग करने के लिए पैरामीटर है -passinया -passout। तो यह उदाहरण होगा:

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -passin pass:somepassword


पासिन या पासआउट का उपयोग करने में क्या अंतर है? - हा! बस इसे देखा, स्टड बनाम स्टैडआउट ऑफ़ कोर्स!
dtmland

ध्यान दें कि अधिकांश openssl कमांड पर लागू होने वाले पासवर्ड विकल्पों के लिए प्रलेखन (सिर्फ नहीं enc) खुलता है (1) के लिए वेब पेज पर 'विकल्प' के तहत भी । लेकिन मुझे विश्वास नहीं है कि आपके अंतिम बिट के बारे में / बाहर; अन्य openssl कमांड जैसे rsa dsa ec pkey pkcs8 pkcs12 req caकि उन का उपयोग करते हैं, लेकिन हर संस्करण में मैंने देखा है जिसमें सीधे अपस्ट्रीम स्रोत encउपयोग से निर्मित -passया -k -kfileदस्तावेज के रूप में ( encमैनपेज पर) शामिल है।
dave_thompson_085

openssl dgstकमांड के बारे में कैसे ? आप कमांड लाइन पर उसके लिए पासफ़्रेज़ कैसे दर्ज करते हैं?
frakman1

4
btw -passinइनपुट प्रमाण पत्र के लिए एक पासवर्ड प्रदान करने के लिए इस्तेमाल किया जाता है, और -passoutनए उत्पन्न प्रमाण पत्र के लिए है
drmad

7

मैंने उदाहरण के लिए दोनों फ़ाइलों में पासवर्ड सेट -passinऔर उपयोग -passoutकिए हैं:

openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321

जहां 123और 321पासवर्ड हैं


5

इस समय उबंटू 14.04 एलटीएस खुलने के साथ आता है 1.0.1f-1ubuntu2.16

इस संस्करण में उपयोग करने के लिए पैरामीटर है -k

उदाहरण:

openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword

1
आपके उदाहरण में, -k, Opensl 'enc' कमांड के लिए उपलब्ध एक विकल्प है (कोशिश करें man enc) यह एक सामान्य विकल्प नहीं है। यदि आप देखते हैं कि man opensslआप 'पास वाक्यांश विकल्प' शीर्षक के तहत देखेंगे, सामान्य विकल्प क्या हैं; pass:password, env:var, file:pathname, fd:numberया stdin, एक पहले जवाब में उल्लेख किया।
सिबज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.