2010-02-03 9 views
13

को एन्क्रिप्ट करने के लिए कैसे करें मुझे एक स्ट्रिंग (टेक्स्ट क्षेत्र से) एन्क्रिप्ट करना होगा जिसे बाद में प्रदर्शित होने पर भी डिक्रिप्ट किया जाएगा।ruby ​​- टेक्स्ट

मुझे इस बारे में चिंतित नहीं है कि यह मुख्य रूप से सुरक्षित है, लेकिन डेटा को सादे पाठ प्रारूप में स्टोर नहीं करना चाहते हैं।

क्या किसी के पास रेल में आसानी से ऐसा करने के बारे में कोई सुझाव है?

उत्तर

-26

आप सुरक्षा को लेकर चिंतित नहीं तो आप बस अपने स्ट्रिंग बेस 64-सांकेतिक शब्दों में बदलना कर सकते हैं कर रहे हैं:

encoded = Base64::encode(string) 
decoded = Base64::decode(encoded) 

वैसे यह भी बाइनरी डेटा एन्कोडिंग लिए उपयुक्त है।

यह वास्तव में एन्क्रिप्ट नहीं कर रहा है क्योंकि कोई भी डेवलपर यह अनुमान लगा सकता है कि इसका बेस 64 एन्कोडेड डेटा है।

+21

-1 एन्कोडिंग एन्क्रिप्शन नहीं है। – Shyam

+1

यद्यपि आप सुरक्षा का जिक्र करते हैं, हालांकि जल्दबाजी में डेवलपर द्वारा आकस्मिक स्कैन उन्हें भूल सकता है। चूंकि यह प्रश्न एन्क्रिप्ट करने के बारे में था, वास्तव में गलत है –

+7

मुझे लगता है कि @neutrino को कठिन समय दिया जा रहा है। टिप्पणीकर्ता सही हैं, लेकिन उन्होंने "अगर आप सुरक्षा से चिंतित नहीं हैं" के साथ उनकी प्रतिक्रिया का प्रस्ताव दिया। मुझे लगता है कि हर कोई इस तथ्य पर अधिक प्रतिक्रिया दे रहा है कि इसे 'सही' के रूप में चुना गया था, और देवताओं जो एन्कोडिंग और एन्क्रिप्टिंग के बीच अंतर को समझते हैं, चिंतित हैं कि जो कोई इस थ्रेड पर ठोकर खाता है, वह 'सही' उत्तर का उपयोग करेगा। मैं वास्तव में चाहता हूं कि मैं जवाब संपादित कर सकूं, और इससे सभी की समस्याओं का समाधान होगा। – hrdwdmrbl

14

क्या रूबी/रेल (वहां होना चाहिए ...) में एक ROT13 कार्यान्वयन है जो मानव पाठकों (और बेवकूफ savants) को छोड़कर पूरी तरह से असुरक्षित है, इसलिए आपके उपयोग के मामले में फिट लगता है।

$_.tr! "A-Za-z", "N-ZA-Mn-za-m"; 

यह उपयोगकर्ता इनपुट के लिए पूछता है तो वर्ण स्वैप: -

संपादित यह वर्ण बाहर गमागमन के लिए एक अच्छी शुरुआत है।

EDIT यदि आप परिचित नहीं हैं, तो ROT13 प्रत्येक पत्र को इसकी प्राकृतिक संख्या निर्दिष्ट करता है। ए = 1, बी = 2, इत्यादि। फिर यह प्रत्येक संख्या में 13 जोड़ता है, जो प्रभावी रूप से वर्णमाला के चारों ओर आधा रास्ता कताई करता है। आधे रास्ते थोड़ा बढ़िया है, क्योंकि, आरओटी 12 के विपरीत, आप फिर से डीओसीडी करने के लिए ROT13 चला सकते हैं। दोनों के लिए एक समारोह। या आप अनुमान लगाते हैं कि आरओटी 12 13 बार मुझे लगता है (12 * 13 = 156. 156/26 = 6.) आरओटी 13 हालांकि इसके लिए बेहतर है।

+17

बस नहीं लगता है कि डबल ROT13 हो सकता है डबल आरएसए की तरह अधिक सुरक्षित है। – tadman

20

एक रूबीगेम नाम Crypt है जो कई एन्क्रिप्शन एल्गोरिदम के शुद्ध रूबी कार्यान्वयन प्रदान करता है।

+0

उनकी वेबसाइट पर उदाहरण ने मुझे एक त्रुटि दी, इसके बजाय एन्क्रिप्टर के लिए चला गया! –

+1

क्रिप्ट 1.9.1 या बड़े पर समर्थित नहीं है - कम से कम – pduersteler

16
gem install encryptor 

यह मानक रूबी OpenSSL पुस्तकालय लपेटता है और आप अपने एल्गोरिदम के किसी भी उपयोग करने के लिए अनुमति देता है।

http://github.com/shuber/encryptor