2014-11-04 196 views
3

在我的Android應用程序的API,我收到一個API的令牌,我從一個HTTP請求Android的密鑰存儲提供商 - 如何存儲密鑰

我做了一些研究得到的,並且,如果它似乎保存最好的辦法關鍵在於Android Keystore Provider。

我看了一下文檔https://developer.android.com/training/articles/keystore.html#UsingAndroidKeyStore

但由於我是新與Android和編程總的來說,我需要一些幫助把到位。

我不知道其中的變量,我應該保存密鑰:

Calendar cal = Calendar.getInstance(); 
Date now = cal.getTime(); 
cal.add(Calendar.YEAR, 1); 
Date end = cal.getTime(); 

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore"); 
kpg.initialize(new KeyPairGeneratorSpec.Builder(getApplicationContext()) 
    .setAlias(alias) 
    .setStartDate(now) 
    .setEndDate(end) 
    .setSerialNumber(BigInteger.valueOf(1)) 
    .setSubject(new X500Principal("CN=test1")) 
    .build()); 

KeyPair kp = kpg.generateKeyPair(); 

那麼我應該如何獲取的密鑰,使用(我認爲)下面的代碼:

KeyStore ks = KeyStore.getInstance("AndroidKeyStore"); 
ks.load(null); 
Enumeration<String> aliases = ks.aliases(); 

謝謝你的幫助。

+3

KeyStore不適用於API密鑰,它用於加密密鑰(公/私) – 2014-11-04 13:31:52

回答

1

我會假設你的API令牌只在一段時間內有效。只需將它存儲在您的應用程序的SharedPreferences中即可。如果它不在那裏,或者它已經過期,只需要另一個。

+0

噢,好的,謝謝。我會用SharedPreferences然後:) – user2230304 2014-11-04 14:16:34