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();
谢谢你的帮助。
答
我会假设你的API令牌只在一段时间内有效。只需将它存储在您的应用程序的SharedPreferences
中即可。如果它不在那里,或者它已经过期,只需要另一个。
+0
噢,好的,谢谢。我会用SharedPreferences然后:) – user2230304 2014-11-04 14:16:34
KeyStore不适用于API密钥,它用于加密密钥(公/私) – 2014-11-04 13:31:52