Android的密钥存储提供商 - 如何存储密钥

问题描述:

在我的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

我会假设你的API令牌只在一段时间内有效。只需将它存储在您的应用程序的SharedPreferences中即可。如果它不在那里,或者它已经过期,只需要另一个。

+0

噢,好的,谢谢。我会用SharedPreferences然后:) – user2230304 2014-11-04 14:16:34