Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 支持API级别14及以下的Android密钥库系统_Java_Android_Android Keystore - Fatal编程技术网

Java 支持API级别14及以下的Android密钥库系统

Java 支持API级别14及以下的Android密钥库系统,java,android,android-keystore,Java,Android,Android Keystore,我想在api级别14及以下的密钥库中存储一些密钥。我找到了使用KeyPairGeneratorSpec和keychain生成密钥库的代码,但在api级别18和更高级别上支持这些代码 KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(this) .setAlias(alias) .setSubject(new X500Principal("CN=Sample Name, O=Android Au

我想在api级别14及以下的密钥库中存储一些密钥。我找到了使用KeyPairGeneratorSpec和keychain生成密钥库的代码,但在api级别18和更高级别上支持这些代码

    KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(this)
      .setAlias(alias)
      .setSubject(new X500Principal("CN=Sample Name, O=Android Authority"))
      .setSerialNumber(BigInteger.ONE)
      .setStartDate(start.getTime())
      .setEndDate(end.getTime())
      .build();
    KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
    generator.initialize(spec);

    KeyPair keyPair = generator.generateKeyPair(); 
我尝试了上面的代码,但它不支持低于api级别18的代码。
任何帮助都将不胜感激

没有支持API级别14及以下的Android密钥库系统。API级别18中引入了

但是,API(Android密钥库系统使用的)可以从API级别14或更高级别获得(尽管现在已弃用)。代码中使用的
KeyPairGeneratorSpec
类是此API的一部分(应在API级别23及更高级别中使用)。没有Android提供的API在API级别14以下工作

您的代码(不带
“AndroidKeyStore”
提供程序参数)将在API级别14及更高级别上工作

    KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(this)
      .setAlias(alias)
      .setSubject(new X500Principal("CN=Sample Name, O=Android Authority"))
      .setSerialNumber(BigInteger.ONE)
      .setStartDate(start.getTime())
      .setEndDate(end.getTime())
      .build();
    KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
    generator.initialize(spec);

    KeyPair keyPair = generator.generateKeyPair(); 
对于API级别14及以下,如,您可以考虑安装第三方安全API;例如。

根据,您应该改用KeyGenParameterSpec。例如(对于RSA签名密钥):