在我的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();
感谢您的帮助。
答案 0 :(得分:1)
我认为您的API令牌仅在一段时间内有效。只需将其存储在SharedPreferences
中即可。如果它不存在,或者它已经过期,那就再换一个。