2015-05-31 151 views
1

我正在開發一個移動應用程序,通過Web服務調用從Web服務器檢索一些數據。使用API​​密鑰可以調用不同的Web服務。現在的問題是這個API密鑰必須如何以及在哪裏存儲?值得注意的是通信採用HTTPS協議。在android中存儲密鑰的位置?

+0

在eclipse中,您將它存儲在屬性文件中,在android studio中將其存儲在build.config文件中 –

回答

0

您可以使用水庫 - >值 - > strings.xml中

但是,如果你想讓它更安全,那麼你可以使用API​​。假設你有一個名爲www.myapiKeysHolder.com的api。這個API會發佈一個發佈數據「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

對不起,我的英文不好。

+0

據我所知,在SQLite數據庫中保存API密鑰並不安全,因爲可以提取該數據並訪問用戶通過調用Web服務的信息。 – Mahmoud

+0

您可以使用共享性能,或者即使不需要保存也可以。爲此,您需要每次用戶需要時調用api。 –