2011-04-27 19 views
17

मैं को R logging package पर जोड़ रहा हूं। वर्तमान में django-sentry किसी सुरक्षित चैनल में स्पष्ट टेक्स्ट में यात्रा करने वाली साझा कुंजी के आधार पर क्लाइंट (लॉग रिकॉर्ड भेजने वाला एप्लिकेशन) को मान्य करता है।मैं आर में डेटा कैसे एन्क्रिप्ट कर सकता हूं?

मैं सोच रहा था कि आर से अधिग्रहण करना संभव था, अधिमानतः असममित, सार्वजनिक कुंजी आधारित, लेकिन मुझे कुछ भी प्रासंगिक नहीं मिला।

ठीक है, नहीं "अगर यह संभव था", लेकिन "यह कैसे करें" और क्या कोई पहले से ही ऐसा करता है।


Django-संतरी के लेखक के साथ बातचीत के बाद, हम hmac के लिए चुना है, जो मैं (संस्करण 0.5+ यह होता है) digest आर पैकेज के भीतर लागू किया है। यह प्रश्न का उत्तर देता है कि "आर का उपयोग करके डेटा एन्क्रिप्ट कैसे करें", लेकिन यह समस्या को हल करता है जिसने मेरे शुरुआती प्रश्न के लिए आधार बनाया है।

इस बिंदु पर मैं आर में असममित लिखित में सक्रिय रूप से काम नहीं कर रहा हूं, हालांकि, यदि आप इसमें रूचि रखते हैं और आप विचार या कोड का योगदान करना चाहते हैं, तो कृपया यहां एक नोट छोड़ दें!

+1

ऐसा लगता है कि यह अभी तक उपलब्ध नहीं है। यह करने में रुचि रखने वाले कौन हैं? मैं सर्वश्रेष्ठ मास्टर के लिए बातचीत और आर-फोर्ज के लिए जिथब का उपयोग करने का प्रस्ताव करता हूं। आर-फोर्ज पर मैंने पहले ही gnupg पैकेज पंजीकृत किया है, जीएनयूपीजी के लिए आर आर रैपर।जब तक मैं अकेला हूं, मैं आर-फोर्ज के साथ रहूंगा। – mariotomo

उत्तर

4

क्या इससे आपको आगे मदद मिलती है: digest package? इसमें कई हैशिंग फ़ंक्शन हैं। मेरे ज्ञान के लिए, असममित एन्क्रिप्शन हैशिंग जैसा ही है ...

+1

मुझे 'पाचन पैकेज' से अवगत नहीं था, मैं इसके कार्यान्वयन पर एक नज़र डालेगा, शायद यह मदद करता है। हैशिंग हस्ताक्षर का हिस्सा हो सकती है, लेकिन यह निश्चित रूप से असममित एन्क्रिप्शन के समान नहीं है। सार्वजनिक/निजी कुंजी का कोई उपयोग नहीं, डी-हैश के लिए संभव नहीं है, आप इसे नाम दें। – mariotomo

7

आप लेखक साइमन अर्बनक से PKI package में उपयुक्त फ़ंक्शन भी पा सकते हैं।

यह पैकेज पीकेआई कार्यों जैसे कि सत्यापन प्रमाण पत्र, आरएसए लिखित और हस्ताक्षर प्रदान करता है जिसका उपयोग पीकेआई आधारभूत संरचना बनाने और क्रिप्टोग्राफिक कार्यों को करने के लिए किया जा सकता है। ट्यूटोरियल से

उदाहरण कोड:

require(PKI) 
key <- PKI.genRSAkey(2048) 
x <- charToRaw("Hello, world!") 
e <- PKI.encrypt(x, key) 
y <- PKI.decrypt(e, key) 
stopifnot(identical(x, y)) 
print(rawToChar(y)) 

परिणाम के रूप में देता है: [1] "Hello, world!"

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

[1] 36 83 d3 70 0a 67 b5 05 a6 40 1e 37 28 b9 4e 28 f1 31 92 14 2c 35 c8 8a 61 93 1e 04 62 01 da 3b 2b a0 75 1c 10 58 26 
[40] e4 77 da 7a 47 3f 4e 44 29 8e 97 6f 62 b1 98 44 ba 18 ef 57 1e 9e 9c 27 a8 6e 9c 7b c7 8b c0 c3 a3 00 e2 67 98 8b 6e 
[79] 1a 93 c6 d6 ed 4b 54 e5 7a 07 d7 06 ef a6 bb 36 6a 7f 57 06 b9 15 03 f6 51 3f 07 48 cb f4 2d 25 15 be 42 de f4 8a 06 
[118] 72 89 b1 e3 04 d3 ec 80 99 f0 66 0f 84 e1 b5 af 23 24 a1 36 8e 62 65 ae 19 fb 77 d1 36 06 ae 71 95 ee 57 aa 68 5a 6b 
[157] 4e 28 ba a2 0d 17 78 11 6c 7f 1b b3 ce 31 65 a9 d3 71 89 76 f9 19 a0 7a bf 02 dd c9 1f cb 9c 39 25 d4 48 a2 23 83 26 
[196] b4 a9 b1 40 f5 1d 46 21 35 12 52 73 09 9b f3 52 e1 9e 0d 2a 9b ff 70 81 41 24 49 ed 58 b2 61 dc 3e c9 b3 b2 b1 37 e0 
[235] 48 76 18 bf b0 e5 c2 d9 2b 92 2f 6b 49 dd e0 93 b7 10 f8 ba d2 8a 
+0

एक पूर्ण समाधान नहीं है। कोई एईएस एन्क्रिप्शन नहीं है, और कच्चे आरएसए की वास्तव में अनुशंसा नहीं की जाती है। –

2

यह एक पुरानी धागा है, लेकिन इस मामले में अन्य लोगों के आ इस पर, ऐसा लगता है कि हैडली द्वारा secure पैकेज है। रीडमे कहता है:

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

सुरक्षित असममित (सार्वजनिक/निजी कुंजी) एन्क्रिप्शन के शीर्ष पर बनाया गया है। सुरक्षित एक यादृच्छिक मास्टर कुंजी उत्पन्न करता है और प्रत्येक फ़ाइल को एल्ट (एईएस 256 के साथ) एन्क्रिप्ट करने के लिए उपयोग करता है। मास्टर कुंजी कहीं भी अनएन्क्रिप्टेड नहीं है; इसके बजाय, प्रत्येक उपयोगकर्ता के लिए अपनी एन्क्रिप्टेड कॉपी को अपनी सार्वजनिक कुंजी का उपयोग करके संग्रहीत किया जाता है। प्रत्येक उपयोगकर्ता अपनी निजी कुंजी का उपयोग करके एन्क्रिप्टेड मास्टर कुंजी को डिक्रिप्ट करने से पहले, फिर प्रत्येक फ़ाइल को डिक्रिप्ट करने के लिए उपयोग कर सकता है।

संबंधित मुद्दे

 संबंधित मुद्दे