2010-02-02 16 views
8

मैं जावा में निजी कुंजी जेनरेट करना चाहता हूं, इसे कुछ फ़ाइल में 64 बेस एन्कोडेड स्ट्रिंग के रूप में सहेजें और फिर इस सहेजी गई फ़ाइल का उपयोग करके सी # में कुछ वाक्यांश एन्क्रिप्ट करें। मुझे जावा में चाबियां उत्पन्न करने और 64 बेस के साथ एन्कोड करने के बारे में पता है। मेरा सवाल है कि मैं इस कुंजी का उपयोग सी # में कैसे करूं? यह पाठ फ़ाइल में निजी कुंजी को बचाने के लिए एक जावा कोड प्रोटोटाइप है:आरएसए: जावा में निजी कुंजी कैसे उत्पन्न करें और इसे सी # में उपयोग करें?

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); 
RSAKeyGenParameterSpec spec = new RSAKeyGenParameterSpec(1024, RSAKeyGenParameterSpec.F4); 
keyGen.initialize(spec); 
KeyPair keyPair = keyGen.generateKeyPair(); 
PrivateKey privateKey = keyPair.getPrivate(); 
writeToFile("privateKey", Base64.encode(keyPair.getPrivate().getEncoded())); 

मैं सी # में निम्नलिखित समारोह को लागू करना चाहते हैं, लेकिन RSAParameters बना सकते हैं या निजी कुंजी

public static string DecryptData(string privateKey64Base, string data64Base) 
{ 
    // create using privateKey64Base 
    // create RSACryptoServiceProvider rsa using RSAParameters above 
    // byte[] encryptedData = rsa.Encrypt(Convert.FromBase64String(data64Base); 
} 
से RSACryptoServiceProvider करने के लिए कैसे नहीं मिल सकता है
+0

मुझे यकीन है कि पहले से ही पूछा गया है ... मुझे बस –

उत्तर

5

This page, जब से तुम बाहर 8 कुंजियों लिख रहे हैं PKCS #

अपनी स्थिति के लिए सलाह शामिल हैं (keyPair.getPrivate() के साथ()। getEncoded) इस दृष्टिकोण आप का उपयोग करना पहली जगह में निजी कुंजी को निजी कुंजी प्राप्त करने के लिए जावा पक्ष पर उपयोगिता का उपयोग करेगा।

वैकल्पिक रूप से, आप BouncyCastle C# का उपयोग कर सकते हैं जो कि कुंजी को पढ़ सकता है (उदाहरण के लिए Org.BouncyCastle.Security.PrivateKeyFactory.CreateKey - आपको पहले बेस 64 डीकोड की आवश्यकता होगी)। तीसरा BouncyCastle RSAPrivateKey to .NET RSAPrivateKey

, आप एक कीस्ट्रोक, उदा को देखने के लिए चाहते हो सकता है:

यह पिछले प्रश्न जिसके परिणामस्वरूप ईसा पूर्व प्रमुख वस्तु से RSACryptoServiceProvider को परिवर्तित करने के लिए इस सवाल का जवाब है पीकेसीएस # 12, जो निजी कुंजी भंडारण के लिए एक अधिक मानक (और सुरक्षित) तरीका है।

+0

नहीं मिल रहा है धन्यवाद! क्या आप कीस्टोर पर किसी भी पठन की सिफारिश कर सकते हैं? मैं इसे अक्सर मिलती हूं लेकिन मुझे अवधारणा को समझ में नहीं आता है। – Moisei

+0

+1, मैं कुछ दिनों के लिए आलेख तक नहीं पहुंच सका क्योंकि वेबसाइट उपलब्ध नहीं थी, अगर आप यहां कोड पेस्ट कर सकते हैं या गिटूब जैसी अधिक लगातार वेबसाइटों का संदर्भ जोड़ सकते हैं तो यह बहुत अच्छा होगा। – AaA

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