2010-02-02 17 views
8

java özel anahtar oluşturmak istiyorum, bazı dosya 64 baz kodlanmış dize olarak kaydetmek ve daha sonra bu kaydedilmiş dosyayı kullanarak C# bazı ifade şifrelemek. Java'da anahtarlar üretmeyi ve 64 baz ile kodlamayı biliyorum. Sorum şu: Bu anahtarı C# kullanarak nasıl kullanabilirim? Bu metin dosyasına özel anahtarı kurtarmak için bir java kodu prototipidir:RSA: Java'da özel anahtar nasıl oluşturulur ve C# içinde nasıl kullanılır?

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())); 

C# aşağıdaki işlevi uygulamak istiyorum ama RSAParameters oluşturmak veya özel anahtar

public static string DecryptData(string privateKey64Base, string data64Base) 
{ 
    // create using privateKey64Base 
    // create RSACryptoServiceProvider rsa using RSAParameters above 
    // byte[] encryptedData = rsa.Encrypt(Convert.FromBase64String(data64Base); 
} 
den RSACryptoServiceProvider nasıl bulamıyor Eğer PKCS # 8 anahtarları yazıyoruz beri
+0

Zaten sorulmuş olduğundan eminim ... Sadece bulamıyorum –

cevap

5

This page, durumunuza için ipuçlarını içerir (keyPair.getPrivate() ile. getEncoded())

bu yaklaşımı siz kullanılması Özel anahtarı PRIVATEKEYBLOB formatına ilk etapta almak için yardımcı programı Java tarafında kullanır. Alternatif olarak, anahtarı okuyabilen BouncyCastle C# 'yu kullanabilirsiniz (bkz. Ör. Org.BouncyCastle.Security.PrivateKeyFactory.CreateKey - Tabii önce Base64 kodunu çözmeniz gerekir). Eğer, örneğin, bir anahtar deposunu kullanarak bakmak isteyebilirsiniz, Üçüncüsü BouncyCastle RSAPrivateKey to .NET RSAPrivateKey

:

Bu önceki soru RSACryptoServiceProvider elde edilen M.Ö. anahtarı nesneden dönüştürmek için cevabı vardır Özel anahtarları saklamak için daha standart (ve güvenli) bir yol olan PKCS # 12.

+0

Teşekkürler! Anahtar deposuyla ilgili herhangi bir okuma önerebilir misiniz? Çok sık karşılaşıyorum ama kavramı anlamadım. – Moisei

+0

+1, Birkaç günlüğüne makaleye erişemedim çünkü web sitesi mevcut değildi, kodu buraya yapıştırırsanız veya Github gibi daha kalıcı web sitelerine bir referans ekleyebilirseniz harika olur. – AaA