将 API 密钥放在哪里?清单中的资源、元数据还是静态变量? [复制]

Posted

技术标签:

【中文标题】将 API 密钥放在哪里?清单中的资源、元数据还是静态变量? [复制]【英文标题】:Where to put the API key? Resources, Meta-data in Manifest or static variable? [duplicate] 【发布时间】:2015-05-01 21:52:33 【问题描述】:

我正在尝试找出将 API 密钥添加到我的 android 应用程序的最佳做法。

-有些人建议在Manifest.xml 文件中使用meta-data - link。这让我觉得,最好在resources 文件中添加密钥。

<meta-data android:value="key_value" android:name="api_key"></meta-data>

-有人说,加到resources-link

<string name="api_key">api_key_value</string">

-我们可以简单的在类代码中添加它

api.configue("api_key_value");

-有人说在Manifest.xmlresources 文件中添加密钥将允许其他应用程序读取它-link。

<string name="foo">bar</string">

我并不是想找到最好的安全方式,因为对我来说,我会将密钥保存在我的服务器中并在运行时检索它。

我问的是要遵循的最佳方法和最佳实践。

提前致谢。

【问题讨论】:

***.com/questions/14570989/… 试试这个 【参考方案1】:

我没有回答这个问题,因为您似乎已经确定了如何处理 API 密钥(在服务器中)。

一篇关于 Android 中可能隐藏的 API 密钥的精彩文章: http://www.androidauthority.com/how-to-hide-your-api-key-in-android-600583/

在您的情况下,由于您要在运行时从服务器检索密钥,我会按照文章中的 #4: API key Public/private key exchange,但它可以是麻烦。

另外,我会考虑 NDK 方法(文章中的#3)。作为客户端方法,它非常简单。

【讨论】:

以上是关于将 API 密钥放在哪里?清单中的资源、元数据还是静态变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 curl 从 mailchimp 获取数据我在哪里将 api 密钥放在 curl 调用中

Fabric 不接受 @string/... 在 manifest.xml 中对其 API 密钥的引用

在 Authorize.Net iOS SDK 中将 API 登录 ID 和事务密钥放在哪里?

Windows 资源管理器在哪里存储文件元数据?

云数据隐私:将密钥放在哪里?

保护云数据隐私,要将密钥放在哪里?