Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 为什么pkcs12的keyStore.alias()为空_Java_Security_Encryption_Bouncycastle - Fatal编程技术网

Java 为什么pkcs12的keyStore.alias()为空

Java 为什么pkcs12的keyStore.alias()为空,java,security,encryption,bouncycastle,Java,Security,Encryption,Bouncycastle,我正在尝试使用以下代码从.p12文件加载PrivateKey: Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); java.security.KeyStore keyStore = KeyStore.getInstance("PKCS12", "BC"); keyStore.load(new FileInputStream(new File("my_domain_

我正在尝试使用以下代码从.p12文件加载PrivateKey:

    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    java.security.KeyStore keyStore = KeyStore.getInstance("PKCS12", "BC");
    keyStore.load(new FileInputStream(new File("my_domain_com.p12")), password);
    keyStore.aliases().hasMoreElements(); //this is false
    java.security.PrivateKey privateKey = (PrivateKey) keyStore.getKey("SomeAlias", password);  
我想找出没有别名的原因。但是我找不到。 空别名的原因可能是什么? 我想获得私钥并用这个密钥加密一些文本。还有别的办法吗


我也有.cer文件,但我不确定是否应该一起使用。

是否可能密钥库中没有任何内容?使用Java
keytool
命令进行验证

>keytool -list -v -keystore test.p12 -storetype PKCS12
Enter keystore password:

Keystore type: PKCS12
Keystore provider: SunJSSE

Your keystore contains 1 entry

Alias name: test_alias
Creation date: Sep 3, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
...
...
如果密钥库中有条目,您应该看到每个条目的“别名”。如果密钥库中没有条目,您将看到“您的密钥库包含0个条目”,您需要将它们导入密钥库


另外,在加密时,您应该使用其他人的公钥进行加密,他们将使用他们的私钥进行解密。他们用你的公钥加密,你用私钥解密。

谢谢你的回复,它给出:Keystore type:PKCS12 Keystore provider:SunJSSE您的Keystore包含0个条目,然后将其导入Keystore:
keytool-v-importkeystore-srckeystore my_domain\u com.p12-srcstoretype PKCS12-destkeystore truststore.jks-deststoretype jks
并显示:导入命令完成:成功导入0个条目,0个条目失败或取消[Storing truststore.jks],这证实了我的怀疑。你的密钥库是空的。在使用密钥库之前,您需要生成密钥或将密钥导入密钥库。密钥库用于SSL证书和VeriSign文件。可以使用这些文件进行加密和解密吗?您不能将该密钥库用于任何用途。它是空的。里面没有钥匙。我也不知道它是怎么用的。您需要先将密钥导入密钥库,然后才能使用它。