将 KeyPairGeneratorSpec 用于 Android API 级别 < 18?
Use KeyPairGeneratorSpec for Android API level < 18?
我想将秘密数据存储在我的应用程序的私有密钥库中。
但是,当我编写代码来执行此操作时,Android Studio 警告说 KeyPairGeneratorSpec.Builder(context)
需要 API 级别 18,而我的目标是至少 14。 :-(
如何在我的应用程序中存储 Android API 14 到 17 级的秘密数据?
通常由硬件支持(但不一定如此)的 AndroidKeyStore 已在 API 级别 18 中正式引入,如您所见,并在此处进行了描述:http://developer.android.com/training/articles/keystore.html
Nikolay Elenkov 编写了一个不错的小应用程序来测试 AndroidKeyStore,您可以在此处找到:https://github.com/nelenkov/android-keystore
如果您深入研究 AOSP,可以使用一些技巧让它在 API 级别 17 上正常工作,但不能保证它在所有设备上都能正常工作,所以它有点毫无意义。在那之前你绝对不会让它在任何事情上工作。
实际上没有必要使用 AndroidKeyStore 来存储您的私钥,除非您对安全性超级偏执并要求它由硬件支持或在隔离进程中(非硬件上的密钥库进程-支持的设备)。
如果您自己在应用程序中生成密钥对并将其保存在密钥库文件中到您的数据区域,则其他 Android 应用程序将无法读取您的密钥,这对大多数应用程序来说足够安全。您甚至可以允许用户使用他们选择的密码来保护密钥库。
可以在此处找到有关使用 Java 和 Android 在软件中生成密钥对的一些有用信息:
Android RSA Keypair Generation - Should I use Standard Java/Bouncy Castle/Spongy Castle/JSch/Other?
JAVA: How to save a private key in a pem file with password protection
https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html
我想将秘密数据存储在我的应用程序的私有密钥库中。
但是,当我编写代码来执行此操作时,Android Studio 警告说 KeyPairGeneratorSpec.Builder(context)
需要 API 级别 18,而我的目标是至少 14。 :-(
如何在我的应用程序中存储 Android API 14 到 17 级的秘密数据?
通常由硬件支持(但不一定如此)的 AndroidKeyStore 已在 API 级别 18 中正式引入,如您所见,并在此处进行了描述:http://developer.android.com/training/articles/keystore.html
Nikolay Elenkov 编写了一个不错的小应用程序来测试 AndroidKeyStore,您可以在此处找到:https://github.com/nelenkov/android-keystore
如果您深入研究 AOSP,可以使用一些技巧让它在 API 级别 17 上正常工作,但不能保证它在所有设备上都能正常工作,所以它有点毫无意义。在那之前你绝对不会让它在任何事情上工作。
实际上没有必要使用 AndroidKeyStore 来存储您的私钥,除非您对安全性超级偏执并要求它由硬件支持或在隔离进程中(非硬件上的密钥库进程-支持的设备)。
如果您自己在应用程序中生成密钥对并将其保存在密钥库文件中到您的数据区域,则其他 Android 应用程序将无法读取您的密钥,这对大多数应用程序来说足够安全。您甚至可以允许用户使用他们选择的密码来保护密钥库。
可以在此处找到有关使用 Java 和 Android 在软件中生成密钥对的一些有用信息:
Android RSA Keypair Generation - Should I use Standard Java/Bouncy Castle/Spongy Castle/JSch/Other?
JAVA: How to save a private key in a pem file with password protection
https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html