2011-11-30 120 views
2

我想知道爲什麼私鑰是不同的,當我使用此代碼:私人公鑰是不同

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); 

,當我使用使用相同的密鑰庫與密鑰工具,iui.jnlp導出私鑰?

我認爲這是代碼錯誤,因爲它產生單行私鑰。

任何人都可以建議我該怎麼做,因爲我需要獲得公鑰並將其傳遞給其他程序員。但公共密鑰也是單行的,這是不正確的。 請幫忙!

回答

1

要從私鑰獲取公鑰,您應該首先將私鑰導出到證書中,然後從證書中導出(獲取)公鑰。

加載密鑰庫後,你可以寫如下 -

證書CRT = keyStoreFile.getCertificate( 「aliasOfPrivateKey」); PublicKey publicKey = crt.getPublicKey();

然後從publicKey獲取編碼的字符串。

要了解更多有關生成私人 - 公共密鑰對,請參考以下 - http://technologytriumph.blogspot.in/2012/10/steps-to-generate-public-priavet-key.html