एक एन्क्रिप्टेड फ़ाइल को प्रिंट (डिक्रिप्ट) करें


10

मैं -xफ़ाइल को एन्क्रिप्ट करने के लिए विम के विकल्प का उपयोग करता हूं । मैंने इसे लिखने से ज्यादा बार इस फाइल को पढ़ा है, इसलिए मैं हमेशा बिल्ली का उपयोग करता हूं और फिर याद रखें कि यह दिखाता है कि यह एन्क्रिप्टेड है .. इसलिए फिर मुझे विम का उपयोग करना होगा, पासवर्ड दर्ज करना होगा और फिर बाहर निकलना होगा :q..

क्या बिल्ली का उपयोग करने का कोई तरीका है (या किसी अन्य कमांड, निश्चित रूप से मेरे पासवर्ड को कहीं और पास करने के लिए) और बस सामग्री प्रिंट / प्राप्त करें? या हो सकता है कि सिर्फ एक विम विकल्प है जो केवल सामग्री को संपादक में प्रवेश किए बिना प्रिंट करता है?


विम के साथ एक शेल स्क्रिप्ट है जो इसे कम पेजर के समान व्यवहार करने के लिए सेट करती है। यह "$ VIMRUNTIME / macros / less.sh" में स्थित है और "$ VIMRUNTIME / macros / less.vim" स्क्रिप्ट का उपयोग करता है। देखते हैं :help less। दुर्भाग्य से इसे अभी भी बाहर निकलने के लिए दबाने q(कोई :ज़रूरत नहीं ) की आवश्यकता है।
8 बिट्ट्री

2
ओपन-सोर्स vimdecrypt आज़माएं
harrymc

जवाबों:


5

ओपन-सोर्स vimdecrypt पर एक नजर :

विम-ब्लोफिश-एन्क्रिप्टेड फ़ाइलों को डिक्रिप्ट करने के लिए कमांड लाइन टूल।

संस्करण के रूप में 7.3 विम ब्लोफ़िश एन्क्रिप्शन / डिक्रिप्शन में निर्मित मजबूत प्रदान करता है, जो कुछ उद्देश्यों के लिए gnupg के माध्यम से फ़िल्टर करने से अधिक सुविधाजनक है। दुर्भाग्य से परिणामी फाइलें केवल vim द्वारा वापस पढ़ी जा सकती हैं जो उन्हें बैच प्रोसेसिंग या स्क्रिप्टिंग में उपयोग करना कठिन बनाता है। एन्क्रिप्टेड डेटा की लंबी उम्र भी एक चिंता का विषय है अगर इसे अनलॉक करने के लिए निर्भरता और आकार के साथ एक कार्यक्रम की आवश्यकता होती है।

Vimdecrypt, vim source, blowfish.c और sha256.c से दो संबंधित फाइलों को लिफ्ट करता है, और उन्हें एक साधारण कमांड लाइन टूल में इंटरफेस करता है। डेटा एक फ़ाइल से पढ़ा जाता है, डिक्रिप्टेड डेटा को stdout को लिखा जाता है।

vimdecrypt path_to_data

पासवर्ड GNU गेटपास के माध्यम से प्राप्त किया जाता है जो स्टड / स्टडआउट पुनर्निर्देशन में हस्तक्षेप नहीं करता है।

विम के कॉन्फ़िगर सिस्टम को पूरी तरह से हटा दिया गया है जो कि उस पर विकसित किए गए 32 बिट i386 लाइनक्स की तुलना में अन्य प्लेटफार्मों के लिए समर्थन को तोड़ सकता है। चूंकि दो प्रासंगिक फाइलें विम प्रोजेक्ट से ली गई हैं, इसलिए इसे vim.h हैडर को ठीक करके अन्य प्लेटफार्मों पर समर्थन को पुनर्स्थापित करने के लिए तुच्छ होना चाहिए।


मैंने कोशिश की है, लेकिन यह मुझे फेंकता है "इनपुट एक विम-एन्क्रिप्टेड फ़ाइल होना चाहिए"। मुझे लगता है कि शायद नए संस्करणों या विम का समर्थन नहीं करता है या शायद इसकी एन्क्रिप्शन पद्धति की समस्या मेरी फ़ाइल में उपयोग की जा रही है?
पाब्लो माटीस गोमेज़

मैं देखता हूं कि उस लिपि में घोषित किए गए जादूगर हैं magics = None, b'VimCrypt~02!', b'VimCrypt~03!'और मैंने अपनी फाइल चेक की और यह इसके साथ शुरू हुई VimCrypt~01!:(
पाब्लो मतियास गोमेज़

VimCrypt 01 ब्लोफिश / ब्लोफिश 2 के बजाय PZKIP क्रिप्ट है। Vim distro से crypt_zip.c को हथियाने और vimdecrypt.c में समर्थन जोड़ने के लिए कुछ इसी तरह का निर्माण कर सकते हैं, जबकि crypt_zip_init और crypt_zip_encode को ब्लोफिश वेरिएंट के बजाय कॉल करने के लिए। मैं खुद ऐसा करने के लिए प्रलोभित हूँ।
एसएसबीएन

2
आप पुराने pkzip आधारित एन्क्रिप्शन का उपयोग कर रहे हैं (जो टूट गया है, लेकिन अभी भी संगतता कारणों के लिए डिफ़ॉल्ट है) और नया नहीं (Vim 7.3 के रूप में) ब्लोफिश आधारित प्रणाली। मुझे पता है कि ब्लोफिश VimCrypt ~ 02 है और मुझे लगता है कि blowfish2 VimCrypt ~ 03 है। आप अपने एन्क्रिप्शन को मजबूत ब्लोफिश या ब्लोफिश 2 में बदल सकते हैं, जैसा कि यहां बताया गया है , और फिर विमड्रिक्रिप्ट शायद आपके लिए काम करेगा।
harrmmc

@harrymc धन्यवाद! यह पूरी तरह से काम किया। यहाँ आपका इनाम है।
पाब्लो माटीस गोमेज़

5

यह एक सुरुचिपूर्ण समाधान नहीं है --- यह त्वरित और गंदा है --- लेकिन यह एकल फाइलों पर काम करता है और आप इसे शेल स्क्रिप्ट के रूप में उपयोग कर सकते हैं।

यह तीन कमांड का एक क्रम है जो निम्नलिखित कार्य करता है:

  1. फ़ाइल खोलें vim (केवल मोड पढ़ें): vim -R
  2. फ़ाइल को प्लेनटेक्स्ट में सहेजें और छोड़ दें: -c ":set key= | sav ${filename}.plain | q
  3. सादा फ़ाइल को बिल्ली: cat ${filename}.plain
  4. (वैकल्पिक रूप से) सादे फ़ाइल को हटा दें: rm ${filename}.plain

अंत में आपके पास एक स्क्रिप्ट हो सकती है जो पासवर्ड को vim कमांड में भी पास करती है। एक साधारण स्क्रिप्ट के रूप में यह होगा:

filename=$1
password=$2

vim -R -c ":set key= | sav ${filename}.plain | q" -- ${filename} <<< $password && cat ${filename}.plain && rm ${filename}.plain

जहाँ पहला तर्क फ़ाइल नाम है और दूसरा पासवर्ड है।

बेशक, कई चीजें हैं जिन्हें आपको ध्यान में रखना चाहिए:

  • सुनिश्चित करें कि आप मौजूदा फ़ाइलों को अधिलेखित नहीं कर रहे हैं जो नाम के लिए होती हैं ${filename}.plain
  • पासवर्ड कमांड लाइन पर दिखाई देगा और इतिहास में सहेजा जाएगा। यदि आप हर बार पासवर्ड के लिए कहा जाना चाहते हैं, तो <<< $passwordभाग को हटा दें ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.