1

你好我試圖Ø生成我在我的Windows的RSA 4096的加密電話8 ecryption應用的Windows Phone 8的RSA加密

我用這種方法我的公鑰:

的RSACryptoServiceProvider rsaProvider =新的RSACryptoServiceProvider(4096 ); var pub_key = rsaProvider.ExportParameters(false); //出口公鑰

,現在我想的pub_key轉換爲PEM格式,所以我可以將它發送到服務器 我做下面的步驟

字節] bpkey =結合(pub_key。 Modulus,pub_key.Exponent);

我是字節數組組合成一個使用 「RSA公共密鑰=模數+指數」

字符串p鍵= 「---- BEGIN PUBLIC KEY ---- \ n」 個+ Convert.ToBase64(bpkey )+「\ n ----結束公鑰----」;

但我得到的是,當我把它發送到服務器時,pkey是一個無效的pem格式!

任何想法如何正確或如何解決錯誤。

回答

1

就像我說的,如果你的服務器DeEncrypt字符串使用Java語言。您不能在Windows Phone客戶端中使用RSACryptoServiceProvider加密字符串。

.Net平臺SDK提供加密隨機數的RSA加密,所以它也必須解密。網絡解密平臺。如果你保持這樣一個跨平臺的Java平臺解密將是一個問題。

你可以試試這種方式。使用bigintege轉換字符串 http://www.codeproject.com/csharp/biginteger.asp

將被罰款

1

其實這是因爲有一個在Java和.NET(小端VS大端)之間簽署的差異。只需扭轉字節數組,你應該很好去。還請查看:

http://scrypt.codeplex.com