2017-03-07 45 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 –