2010-05-22 3 views
200

У меня есть хранилище ключей с определенным паролем, который я должен знать. Теперь мне нужно, чтобы дать доступ к этому хранилищу ключей к кому-то еще, так что я хотел бы либо:Пароли изменения хранилища данных

1) Изменение пароля, так что я могу поделиться им с другими, и пусть знак
2) Создайте другой пароль и позволяют им подписываться вместе с ним.

Возможно ли это? и - если да - как?

ответ

371

У Keystore только один пароль. Вы можете изменить его с помощью Keytool:

keytool -storepasswd -keystore my.keystore 

Чтобы изменить пароль ключа:

keytool -keypasswd -alias <key_name> -keystore my.keystore 
+1

Спасибо за ответ. – user313724

+4

Отлично, так что подпись apk будет такой же? Только пароль изменится? Это то, что мне тоже нужно. Выберите плохой пароль, теперь его нужно изменить. –

+3

Подпись не изменится, так как приложение НЕ подписано с хранилищем ключей, но с сертификатом, хранящимся в хранилище ключей. –

65

[How can I] Change the password, so I can share it with others and let them sign

Использование Keytool:

keytool -storepasswd -keystore /path/to/keystore 
Enter keystore password: changeit 
New keystore password: new-password 
Re-enter new keystore password: new-password 
+1

Спасибо за подробное руководство! – user313724

+0

это тоже изменяет пароль для ключа внутри? –

+4

Нет. Keystore - это одно, пароли (обратите внимание на множественное число) - это другое. Используйте 'keytool -keypasswd -alias -keystore my.keystore', чтобы сменить пароль закрытого ключа' ' –

18

Чтобы изменить пароль для ключа myalias внутри хранилище ценных бумаг mykeyfile:

keytool -keystore mykeyfile -keypasswd -alias myalias 
+0

Что такое «внутренний ключ»? –

+5

Извините за мое плохое объяснение. Вы можете изменить пароль хранилища ключей или пароль одного из ключей, сохраненных в хранилище ключей. Это то, что я имею в виду под «внутренним ключом». – OriolJ

35

Изменение пароля KeyStore

$ keytool -storepasswd -keystore keystorename 
Enter keystore password: <old password> 
New keystore password: <new password> 
Re-enter new keystore password: <new password> 

Изменение хранилищу псевдонима пароля

$keytool -keypasswd -keystore keystorename -alias aliasname 
Enter keystore password: 
New key password for <aliasname>: 
Re-enter new key password for <aliasname>: 

Примечание:

**Keystorename**: name of your keystore(with path if you are indifferent folder) 
**aliasname**: alias name you used when creating (if name has space you can use \) 
for example: $keytool -keypasswd -keystore keystorename -alias stop\ watch 
+0

Он работает спасибо! Еще одна вещь, которую я хочу добавить, чтобы изменить псевдоним, который я хотел и получил с форума. keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name –

+0

При изменении пароля псевдонима я получаю: UnrecoverableKeyException: не удается восстановить ключ Любые предложения? – Foo

+0

@Foo вы когда-нибудь выяснили эту проблему? Я получаю ту же ошибку –

8

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

keytool -importkeystore -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks 
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey 
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass 
+0

Вы только что спасли мою неделю! «-srckeypass mykeypass -destkeypass myotherkeypass» - это то, что мне нужно. Спасибо!!! – Slav

+0

Это отлично! Спасибо! –

4

Есть так много ответов, но если вы пытаетесь изменить JKS пароль на Mac в Android Studio. Вот самые простые шаги, которые я мог бы найти

1) Открыть терминал и компакт-диск, где ваш .jks находится

2) Keytool -storepasswd -new Новый_пароль -keystore YOURKEYSTORE.jks

3) введите свой текущий пароль