закрытый открытый ключ отличается - PullRequest
2 голосов
/ 30 ноября 2011

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

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 Ответ

1 голос
/ 25 сентября 2013

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

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

Certificate crt = keyStoreFile.getCertificate ("aliasOfPrivateKey");PublicKey publicKey = crt.getPublicKey ();

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

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

...