0

好的,所以我正在为我的 android 应用程序规划自动化构建。这意味着我需要将任何配置信息(例如 API 密钥和端点)放入 .properties 文件中。问题是我不能只将 API 密钥弹出到该文件中。

我知道常见的建议是尝试隐藏应用程序中的敏感数据,然后在运行时生成它。

我的计划是加密敏感的 .properties 数据并在代码中生成它的 accesskey。

我可以将加密密钥存储在 Java 密钥库中,然后在运行时在代码中导出其密码。

这一切都意味着我可以在构建测试/生产环境期间轻松交换加密密钥和 API 密钥。我也可以从源代码管理中排除。

大家觉得这种做法怎么样?谢谢。

4

1 回答 1

0

除了将密钥存储在密钥库中之外,您的计划对我来说听起来不错。基本上,只为设备上的所有系统级和第三方应用程序创建了一个密钥库实例。在 Android 4.0 之后,keystore 与解锁屏幕集成,并在用户解锁设备时解锁。因此,如果您将密钥作为键/值对存储在密钥库中,那么您的密钥在您打开应用程序之前就已准备就绪。或者,如果您将其存储为密钥/加密(值)对,那么您必须在运行时从密码中派生密钥并解密加密值。但是您最终可能会获得两个密码来解锁手机屏幕和解锁钥匙。我可能只使用一个密码,即屏幕解锁密码。由于密钥库映射到进程 ID,因此只能从您的应用程序访问它。然而,

于 2013-09-01T23:11:47.100 回答