2017-03-07 47 views
0

我想在運行之前保存一個RSA對密鑰(私鑰和公鑰),這樣我就可以發送加密的消息(使用公鑰),並且當服務器給我返回結果時,使用私鑰對其解密。如何在應用程序啓動時訪問RSA私鑰?

顯然我希望我的私鑰能夠安全地避免任何漏洞,如暴露。我不想在運行時生成/存儲它(如使用keystore)。它應該與應用程序包一起存在。

底線,我不希望生成RSA密鑰對每一個我跑我的應用程序的時候,因爲我希望把這些在我的服務器也是一樣,我希望有一個安全的方式來存儲它們(there are some ways to extract things

回答

1

我不建議在您的應用程序中嵌入RSA加密/解密密鑰對,因爲:

  • 如果密鑰被泄露那麼你的系統的安全性是完全受到影響,您將需要一個新的應用程序分發到所有用戶

  • 密文大小由密鑰長度

加密/解密你只需要使用TLS通道(HTTPS)客戶端和服務器之間的消息的限制。

+0

我想發送用戶/傳遞認證到服務器。所以它不是很長。 –

+0

如果你只想加密從客戶端發送到服務器的數據,那麼你只需要服務器的公鑰。那麼將它包含在你的應用程序中就沒有安全風險。但我認爲使用https是一個安全和簡單的解決方案,並允許以兩種方式加密通道,沒有大小限制 – pedrofb

+0

正如你所說我認爲相同,但我不能在服務器中的'vb.net'生成的公鑰生成我的android應用程序,反之亦然。 java想要大整數的模數和指數,我不能轉換與vb.bet導出的公鑰xml –