在我的 Android 项目中,我想以安全的方式存储 API 密钥。该密钥是从应用程序外部生成的,需要在构建应用程序之前以某种方式存储在应用程序中。
我已经看到了一些如何使用 KeyStore 的示例(例如this或this),但据我了解,这些是存储运行时生成的密钥的解决方案,而不是我将存储在代码中某处的密钥。
我还检查了此处解释的其他方法,但由于逆向工程,它们看起来可以很容易地检索 API 密钥。
我也不想将我的密钥存储在我的代码中,也是因为它可以通过逆向工程轻松检索。
其目的是能够在每次调用我制作的网络服务时发送该密钥,因此我确定(或几乎确定)该调用来自我正在制作的原始应用程序,这将是在 Play 商店上发布,而不是从其他地方发布。
我远不是安全专家,所以任何帮助将不胜感激。
谢谢。
我正在阅读关于存储密钥(加密/解密数据)的内容,似乎没有办法实现这一点.人们只能增加攻击者实现这一目标的难度.
它真的像那样?
到目前为止我得到了什么:
存储在共享首选项(私人模式) - Root电话将能够检索它.
NDK C/C++本机代码,创建.so文件 - 难以反编译,但可以调用此.so文件并检索它.
用于存储密钥的Web服务器看起来毫无用处,如果必须发送凭据,则恶意软件可以记录密钥.
我太偏执了吗?