Android密钥库提供程序 - 如何存储API密钥

时间:2014-11-04 13:28:59

标签: android keystore

在我的Android应用程序中,我收到了一个来自http请求的API令牌

我做了一些研究,并且,如果看起来存储此密钥的最佳方式是Android密钥库提供商。

我查看了文档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();

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为您的API令牌仅在一段时间内有效。只需将其存储在SharedPreferences中即可。如果它不存在,或者它已经过期,那就再换一个。