在密钥库中存储API密钥

时间:2018-04-17 22:50:38

标签: android android-keystore

我继承了一个应用程序,该应用程序调用受API密钥保护的服务,不幸的是,这些API密钥嵌入在应用程序中。显然,这并不理想,所以我希望在Android Keystore中嵌入API密钥。我过去曾在其他Android应用上使用https://github.com/scottyab/secure-preferences等库,但在这种情况下,安全性不会通过安全审核。

阅读本文:https://medium.com/@ericfu/securely-storing-secrets-in-an-android-application-501f030ae5a3我得到了一切,但最初如何在密钥库中获取API密钥作为构建的一部分。理想情况下,我会将API密钥作为登录过程的一部分返回,因此它会在运行时插入,但遗憾的是,我目前无法更改登录服务。

我阅读过很多帖子,例如:Best practice for storing and protecting private API keys in applications,但大多数都专注于将密钥保留在源代码存储库之外。

所以,问题是:是否有一个gradle构建机制(或任何机制)可以在构建时将特定数据插入Android Keystore?

1 个答案:

答案 0 :(得分:4)

  

是否有可以在构建时将特定数据插入Android Keystore的gradle构建机制(或任何机制)?

根据定义,这是不可能的。 AndroidKeyStore位于用户的Android设备上,而不是开发者计算机上。在构建时,您的应用不在用户的Android设备上,也无法对其进行任何操作。