Android keytool and jarsigner。ツールはキーストア、キーストアのパスワード、エイリアス名、エイリアス/キーのパスワードを取得します。 'エイリアス/キーに指定されたパスワードが正しいかどうかを明示的に確認する方法を見つけようとしています。
何か案は?また、jarファイルなしで署名する必要があります。コンテキストでそのファイルを取得するには時間がかかるため、後で停止するのではなく、すぐに中止します。
パスワードを変更せずに、パスワードが正しいかどうかを確認することもできます。このコマンドでキーストアのプロパティをリストすることでそれを行いました:
keytool -list -keystore <keystorefile> -storepass <passwordtocheck>
いくつかの方法で実行できます。
A. keytool
を使用
コマンドkeytool -keypasswd -keystore <keystore> -alias <alias> -storepass <storepass> -keypass <keypass> -new <keypass>
を実行すると、キーストアパスワードが間違っている場合はエラーKeystore was tampered with, or password was incorrect
が、エイリアスパスワードが間違っている場合はエラーCannot recover key
が表示されます。残念ながら、どちらの場合も戻りコードは1です。そのため、エラーの種類を賢く知りたい場合は、プログラムの出力を解析する必要があります。
B.小さなJavaプログラム
これらの線に沿って何か:
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
try (FileInputStream fis = new FileInputStream(keystore)) {
ks.load(fis, ksPw.toCharArray());
}
ks.getEntry(alias, new KeyStore.PasswordProtection(aliasPw.toCharArray()));
キーストアのパスワードが間違っている場合は4行目でJava.io.IOException
で失敗し、エイリアスパスワードが間違っている場合は7行目でJava.security.UnrecoverableKeyException
で失敗します。