Hasła do zmiany magazynu kluczy

267

Obecnie mam magazyn kluczy z określonym hasłem, które tylko powinienem znać. Teraz muszę udostępnić ten plik kluczy komuś innemu, więc chciałbym:

1) Zmień hasło, aby móc je udostępnić innym i pozwolić im się podpisać
2) Utwórz inne hasło i pozwól im się z nim podpisać.

czy to możliwe? i - jeśli tak - jak?

użytkownik313724
źródło

Odpowiedzi:

489

Magazyn kluczy ma tylko jedno hasło. Możesz to zmienić za pomocą keytool:

keytool -storepasswd -keystore my.keystore

Aby zmienić hasło klucza:

keytool -keypasswd  -alias <key_name> -keystore my.keystore
ZZ Coder
źródło
6
Świetnie, więc podpis APK będzie taki sam? Tylko hasło się zmieni? Tego też potrzebuję. Wybrałeś złe hasło, teraz musisz je zmienić.
Matthew Rudy,
6
Podpis się nie zmieni, ponieważ aplikacja NIE jest podpisana za pomocą magazynu kluczy, ale za pomocą certyfikatu przechowywanego w magazynie kluczy.
Marcin Orłowski
keyName to nazwa aliasu, np. -alias Dipu
Włochy
18
Aby usunąć hasło do klucza, należy ustawić to samo hasło, co do magazynu kluczy, może być przydatne dla kogoś ;-)
Betlista
Czy to dotyczy .jksrównież? Mój plik kluczy to .jks wygenerowany przez Android Studio
81

[Jak mogę] Zmień hasło, aby móc je udostępnić innym i pozwolić im się podpisać

Za pomocą keytool:

keytool -storepasswd -keystore /path/to/keystore
Enter keystore password:  changeit
New keystore password:  new-password
Re-enter new keystore password:  new-password
Pascal Thivent
źródło
czy to również zmienia hasło do klucza w środku?
over_optimistic
4
Nie. Magazyn kluczy to jedna rzecz, hasła (uwaga w liczbie mnogiej) to inna. Użyj, keytool -keypasswd -alias <KeyName> -keystore my.keystoreaby zmienić hasło klucza prywatnego<KeyName>
Marcin Orłowski
5
po wejściu do pliku kluczy -zmiana daje błąd błąd klucza: java.io.IO Wyjątek: sabotowano plik kluczy lub hasło było niepoprawne
Dilip
@Dipu, otrzymuję ten sam błąd. Czy udało ci się to rozwiązać
JiteshW
Możesz sprawdzić, czy hasło uległo zmianie (jeśli masz wątpliwości), ponownie uruchamiając dokładnie to samo polecenie. Po wyświetleniu monitu o podanie istniejącego hasła, jeśli wpiszesz niepoprawne hasło, powiesz, że wprowadziłeś błędne hasło lub plik został sfałszowany i został przerwany.
ArtOfWarfare
48

Zmiana hasła do magazynu kluczy

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

Zmiana hasła aliasu magazynu kluczy

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

Uwaga:

**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
użytkownik98239820
źródło
1
Działa, dziękuję! Jeszcze jedną rzecz, którą chcę dodać, aby zmienić nazwę aliasu, którą chciałem i dostałem z forum. keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name
Jugal Panchal
Podczas zmiany hasła aliasu otrzymuję: UnrecoverableKeyException: Nie można odzyskać klucza Wszelkie sugestie?
Foo
@ Foo, czy kiedykolwiek zdarzyło Ci się rozwiązać ten problem? Otrzymuję ten sam błąd
Ryan Newman,
3
Zmiana hasła aliasu magazynu kluczy, co pokazałeś, nie działa, nie będzie pytać o nowe hasło klucza dla <aliasname>. Pyta o istniejące hasło dla <aliasname>, która nie jest znana w tym przypadku.
Shivaraj Patil
Nadal otrzymuję komunikat Nie można odzyskać klucza na etapie: Nowe hasło klucza dla <nazwa aliasu>: Wszelkie pomysły? Właśnie utworzyłem klucz w Android Studio, przesłałem, zdałem sobie sprawę, że muszę coś zaktualizować, a teraz to nie działa: /
Dewald Els,
22

Aby zmienić hasło do klucza myaliasw magazynie kluczy mykeyfile:

keytool -keystore mykeyfile -keypasswd -alias myalias
OriolJ
źródło
Co to jest „klucz wewnętrzny”?
IgorGanapolsky
5
Przepraszam za moje złe wyjaśnienie. Możesz zmienić hasło do magazynu kluczy lub hasło jednego z kluczy zapisanych w magazynie kluczy. To mam na myśli z „kluczem wewnętrznym”.
OriolJ
9

Jeśli plik kluczy zawiera inne wpisy kluczy z innym hasłem, musisz je również zmienić lub możesz odizolować swój klucz do innego magazynu kluczy za pomocą poniższego polecenia,

keytool -importkeystore  -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass
Ishan Liyanage
źródło
7

Tutaj jest tak wiele odpowiedzi, ale jeśli próbujesz zmienić hasło jks na komputerze Mac w Android Studio. Oto najprostsze kroki, jakie udało mi się znaleźć

1) Otwórz Terminal i cd do miejsca, w którym znajduje się .jks

2) keytool -storepasswd -nowe NEWPASSWORD -keystore YOURKEYSTORE.jks

3) wprowadź swoje aktualne hasło

dlaczego?
źródło
5

KeyStore Explorer jest otwartym zamiennikiem GUI dla narzędzia i narzędzia jarsigner z linii poleceń Java. KeyStore Explorer prezentuje ich funkcjonalność i nie tylko, poprzez intuicyjny graficzny interfejs użytkownika.

  1. Otwórz istniejący magazyn kluczy
  2. Narzędzia -> Ustaw hasło do magazynu kluczy
Rafael Membrives
źródło
najlepsze rozwiązanie! Lepsze niż pisanie na terminal. Korzystając z tego oprogramowania - mogłem zmienić hasła i dodać nowe pary kluczy. Gorąco polecam
Dan Alboteanu
4

Pełna zmiana programowa (np. Program instalacyjny) i bez monitowania

#!/bin/bash -eu

NEWPASSWORD=${1}
OLDPASSWORD=${2}

keytool -storepasswd -new "${NEWPASSWORD}" \
  -storepass "${OLDPASSWORD}" \
  -keystore /path/to/keystore

Pełne ujawnienie: NIE polecam uruchamiania tego wiersza poleceń w powłoce, ponieważ stare i nowe hasła zostaną zapisane w historii powłoki i będą widoczne w konsoli.

Alexander Pogrebnyak
źródło