【问题标题】:Where to store a key in android?在哪里存储密钥在android中?
【发布时间】:2015-05-31 04:40:18
【问题描述】:

我正在开发一个移动应用程序,它通过网络服务调用从网络服务器检索一些数据。使用 API 密钥对不同 Web 服务的调用停止。现在的问题是这个 API 密钥必须如何以及在哪里存储?值得注意的是,通信是通过 HTTPS 协议进行的。

【问题讨论】:

  • 在 eclipse 中你将它存储在属性文件中,在 android studio 中你将它存储在 build.config 文件中

标签: android security key


【解决方案1】:

你可以使用 res->values->strings.xml

但如果你想让它更安全,那么你可以使用 Api。假设您有一个名为 www.myapiKeysHolder.com 的 api。这个 api rechive 一个帖子数据“app_pkg”,如果这是您的应用程序包名称,那么它会提供您的 api 密钥作为响应。然后您可以将此密钥保存在您的 sqlite 数据库中或共享性能。
一些样品来找你:

// Create AsycHttpClient object
AsyncHttpClient client = new AsyncHttpClient();
// Http Request Params Object
RequestParams params = new RequestParams();
params.put("app_pkg", getPackageName().toString());

client.post("www.myapiKeysHolder.com", params, new   
   AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
         String api=response; //Api give your Api Key
         updateSQLite("api_key",api);
    }
});

要支持此代码,您将需要此 jar 文件。
https://www.dropbox.com/s/ofjcyo7zz1q86p7/android-async-http-1.3.1.jar

对不起,我的英语不好。

【讨论】:

  • 据我所知,将 API 密钥保存在 SQLite DB 中并不安全,因为可以通过调用 Web 服务提取数据并访问用户信息。
  • 您可以使用共享性能,甚至不需要保存它。为此,您需要在每次用户需要时调用 api。
猜你喜欢
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 2013-02-19
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多