Keystore cambia password


267

Al momento ho un keystore, con una password particolare che solo io dovrei sapere. Ora devo dare accesso a quel keystore a qualcun altro, quindi vorrei:

1) Cambia la password, così posso condividerla con gli altri e lasciarli firmare
2) Crea una password diversa e consenti loro di firmare con essa.

È possibile? e - se sì - come?

Risposte:


489

Keystore ha solo una password. Puoi cambiarlo usando keytool:

keytool -storepasswd -keystore my.keystore

Per modificare la password della chiave:

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

6
Fantastico, quindi la firma dell'apk sarà la stessa? Solo la password cambierà? Questo è quello che mi serve anche. Scegli una password errata, ora devi cambiarla.
Matthew Rudy,

6
La firma non cambierà, poiché l'app NON è firmata con il keystore, ma con il certificato che conservi nel keystore.
Marcin Orlowski,

keyName è il nome dell'alias, ad es. -alias Dipu
ılǝ

18
Per rimuovere la password per la chiave, è necessario impostare la stessa password del keystore, può essere utile per qualcuno ;-)
Betlista,

Questo vale .jksanche per? Il mio keystore è .jks generato da Android Studio

81

[Come posso] Cambiare la password, così posso condividerla con gli altri e lasciarli firmare

Utilizzando keytool:

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

questo cambia anche la password per la chiave interna?
over_optimistic,

4
No. Keystore è una cosa, le password (nota plurale) è un'altra. Utilizzare keytool -keypasswd -alias <KeyName> -keystore my.keystoreper modificare la password della chiave privata<KeyName>
Marcin Orlowski,

5
dopo aver inserito il passaggio keystore -cambia restituisce errore errore keytool: java.io.IOException: keystore è stato manomesso o la password era errata
Dilip

@Dipu, sto riscontrando lo stesso errore. Sei riuscito a risolverlo
JiteshW

È possibile verificare che la password sia stata modificata (in caso di dubbi) eseguendo nuovamente lo stesso comando esatto. Dopo aver richiesto la password esistente, se si immette una password errata, verrà indicato che è stata immessa la password errata o che il file è stato manomesso e interrotto.
ArtOfWarfare,

48

Modifica della password del keystore

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

Modifica password alias keystore

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

Nota:

**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

1
Funziona grazie! Un'altra cosa che voglio aggiungere per cambiare il nome alias che volevo e che ho ottenuto da un forum. keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name
Jugal Panchal

Durante la modifica della password alias ottengo: UnrecoverableKeyException: impossibile recuperare la chiave Qualche suggerimento?
Foo,

@Foo hai mai capito quel problema? Ricevo lo stesso errore
Ryan Newman,

3
La modifica della password alias keystore qualsiasi cosa tu abbia mostrato non funziona, non chiederà la nuova password chiave per <aliasname>. Richiede la password esistente per <aliasname> che non è noto in questo caso.
Shivaraj Patil,

Ricevo ancora Impossibile recuperare la chiave al passaggio: Nuova password chiave per <aliasname>: Qualche idea? Ho appena creato la chiave in Android Studio, caricato, realizzato che dovevo aggiornare qualcosa e ora non funziona: /
Dewald Els

22

Per modificare la password per una chiave myaliasall'interno del keystore mykeyfile:

keytool -keystore mykeyfile -keypasswd -alias myalias

Che cos'è la "chiave interna"?
IgorGanapolsky,

5
Ci scusiamo per la mia cattiva spiegazione. È possibile modificare la password del keystore o la password di una delle chiavi memorizzate nel keystore. Questo è ciò che intendo con "chiave interna".
OriolJ,

9

Se il keystore contiene altre voci chiave con password diversa, è necessario modificarle o è possibile isolare la chiave in keystore diversi utilizzando il comando seguente,

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

7

Ci sono così tante risposte qui, ma se stai provando a cambiare la password jks su un Mac in Android Studio. Ecco i passaggi più semplici che sono riuscito a trovare

1) Apri Terminale e cd dove si trova il tuo .jks

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

3) inserisci la tua password attuale


5

KeyStore Explorer è una sostituzione della GUI open source per il keytool e il jarsigner delle utility da riga di comando Java. KeyStore Explorer presenta le loro funzionalità e altro ancora tramite un'interfaccia utente grafica intuitiva.

  1. Apri un KeyStore esistente
  2. Strumenti -> Imposta password KeyStore

soluzione migliore! Meglio che scrivere sul terminale. Usando questo software - Sono stato in grado di cambiare le password e aggiungere nuove coppie di chiavi. Consiglio vivamente
Dan Alboteanu il

4

Per un cambio programmatico completo (ad es. Programma di installazione) e nessuna richiesta

#!/bin/bash -eu

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

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

Divulgazione completa: NON consiglio di eseguire questa riga di comando in una shell, poiché le password vecchie e nuove verranno salvate nella cronologia della shell e visibili nella console.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.