मैं अपने सी # प्रोजेक्ट में आरएसए (बाउंसी कैसल एपीआई) का उपयोग कर रहा हूं। मैं इस विधि के साथ कुंजीयुग्म उत्पन्न:बाउंसी कैसल, आरएसए: एक स्ट्रिंग प्रारूप में कुंजियों को बदलने
RsaKeyPairGenerator r = new RsaKeyPairGenerator();
r.Init(new KeyGenerationParameters(new SecureRandom(), 1024));
AsymmetricCipherKeyPair keys = r.GenerateKeyPair();
AsymmetricKeyParameter private_key = keys.Private;
AsymmetricKeyParameter public_key = keys.Public;
अब मैं उन्हें एक txt फ़ाइल में सहेजना चाहते हैं, लेकिन समस्या यह है कि मैं उन्हें एक स्ट्रिंग प्रारूप में रूपांतरित नहीं कर सकते हैं। मैंने एक और पोस्ट में पढ़ा है कि चाबियों का उपयोग करके क्रमबद्ध किया जाना चाहिए:
PrivateKeyInfo k = PrivateKeyInfoFactory.CreatePrivateKeyInfo(private_key);
byte[] serializedKey = k.ToAsn1Object().GetDerEncoded();
क्या यह सही तरीका है? यदि हां, तो इसके बाद मुझे क्या करना चाहिए? बस उन्हें बाइट [] से स्ट्रिंग में परिवर्तित करें?
अपने त्वरित जवाब के लिए धन्यवाद। जैसा आपने कहा था मैंने किया और परिणामस्वरूप मुझे यह मिला ** MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJ7s/B4XNHmNa9LwZ91z ... ** मुझे लगता है कि यह एक BigInteger नहीं होना चाहिए? क्योंकि आरएसए में हम संख्याओं का उपयोग करते हैं (पी, क्यू ...) – Skeenor
विधि का नाम (GetDerEncoded) सुझाव देता है कि लौटाए गए डेटा में डीईआर एन्कोडेड प्रारूप में सभी आरएसए कुंजी पैरामीटर (पी, क्यू, ...) शामिल हैं। –
@ रमी: क्या आपका लक्ष्य कुछ ऐसा है जो आप "रीहाइड्रेट" को एक निजी KeyInfo पर वापस कर सकते हैं? यदि ऐसा है, तो आपको पूर्णांक आदि को जानने की आवश्यकता नहीं है ... आप बस यह सुनिश्चित करना चाहते हैं कि आप एक बाइट सरणी (और उसके बाद एक स्ट्रिंग) को क्रमबद्ध कर सकते हैं और इसके विपरीत। –