закрытый открытый ключ отличается

Мне было интересно, почему закрытый ключ отличается, когда я использую этот код:

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, используя то же хранилище ключей?

Я думаю, что это неправильный код, поскольку он создает закрытый ключ в одной строке.

Может ли кто-нибудь предложить мне, что делать, поскольку мне нужно получить открытый ключ и передать его другим программистам. Но открытый ключ также попадает в одну строку, и это неправильно. Пожалуйста помоги!


person innspiron    schedule 30.11.2011    source источник


Ответы (1)


Чтобы получить открытый ключ из закрытого ключа, вы должны сначала экспортировать закрытый ключ в сертификат, а затем из сертификата вы должны импортировать (получить) открытый ключ.

После загрузки хранилища ключей вы можете написать следующее:

Сертификат crt = keyStoreFile.getCertificate("aliasOfPrivateKey"); PublicKey publicKey = crt.getPublicKey();

Затем получите закодированную строку из publicKey.

Чтобы узнать больше о создании пары закрытый-открытый ключ, см. следующую информацию: http://technologytriumph.blogspot.in/2012/10/steps-to-generate-public-priavet-key.html

person Niraj Chapla    schedule 25.09.2013