2016-08-03 10 views
2

У нас есть формат jck keystore (jceks), содержащий секретный ключ. Он был создан с помощью команды KeytoolЭкспорт секретного ключа из хранилища ключей jck

Keytool -genseckey -alias MyKey -keyalg AES -keysize 256 -storetype JCEKS -keystore mykeystore.jks

Мы должны поделиться этим с другим приложением, и они, кажется, имеют ограничения в работа с хранилищем jck. Они просят ключ, который будет экспортироваться и поставляться им.

Мы попробовали несколько инструментов, но не можем экспортировать секретный ключ. Есть ли команда или обходной путь для достижения этой цели?

ответ

2

keytool не поддерживает экспорт секретных ключей. Вы можете использовать KeyStore api для этого.

KeyStore ks = KeyStore.getInstance("JCEKS"); 
ks.load(new FileInputStream(new File("KEYSTORE_PATH")), "PASSWORD".toCharArray()); 

SecretKey key = (SecretKey) ks.getKey("ALIAS", "PASSWORD".toCharArray()); 

System.out.println(new String(Base64.encode(key.getEncoded()))); 
1

KeyStore Explorer показывает ключ в виде шестнадцатеричной строки, если дважды щелкнуть на нем:

enter image description here