我想知道为什么使用此代码时私钥有所不同:
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一起使用相同密钥库的导出私钥时?
我认为这是错误的代码,因为它在单行中生成私钥。
任何人都可以建议我做什么,因为我需要获取公钥并将其传递给其他程序员。但是公钥也是单行的,这是不正确的。 请帮忙!
答案 0 :(得分:1)
要从私钥获取公钥,首先应将私钥导出到证书中,然后从证书中导出(获取)公钥。
加载密钥库后,您可以按如下方式编写 -
证书crt = keyStoreFile.getCertificate(“aliasOfPrivateKey”); PublicKey publicKey = crt.getPublicKey();
然后从publicKey获取编码的字符串。
要了解有关生成私钥的更多信息,请参阅以下内容 - http://technologytriumph.blogspot.in/2012/10/steps-to-generate-public-priavet-key.html