私人公钥是不同的

时间:2011-11-30 14:06:31

标签: key private public keystore

我想知道为什么使用此代码时私钥有所不同:

java.security.KeyStore keyStoreFile = java.security.KeyStore.getInstance("PKCS12");
keyStoreFile.load(new FileInputStream("keyStore.pfx"),"password".toCharArray());
PrivateKey privateKey = (PrivateKey) keyStoreFile.getKey("alias","password".toCharArray());
String temp = new String(Base64.encodeBase64(privateKey.getEncoded()));
System.out.println(temp);

当我使用与keytool-iui.jnlp一起使用相同密钥库的导出私钥时?

我认为这是错误的代码,因为它在单行中生成私钥。

任何人都可以建议我做什么,因为我需要获取公钥并将其传递给其他程序员。但是公钥也是单行的,这是不正确的。 请帮忙!

1 个答案:

答案 0 :(得分:1)

要从私钥获取公钥,首先应将私钥导出到证书中,然后从证书中导出(获取)公钥。

加载密钥库后,您可以按如下方式编写 -

证书crt = keyStoreFile.getCertificate(“aliasOfPrivateKey”); PublicKey publicKey = crt.getPublicKey();

然后从publicKey获取编码的字符串。

要了解有关生成私钥的更多信息,请参阅以下内容 - http://technologytriumph.blogspot.in/2012/10/steps-to-generate-public-priavet-key.html