Android開発からの長い休憩の後にAPKに署名するとき、それをロック解除するために空のキーストアパスワードを入力することができなくなったことに驚きました。私または以前は可能でしたか?可能であれば、いつ変更されましたか。
いくつかの背景:たぶん私は頭がおかしくて、以前にキーストアに空のパスワードを使用していなかったかもしれませんが、代わりに使用できた唯一の可能なパスワードも機能しません(私は誓います、私はチャンスがないでしょう) d別のパスワードを使用しました!)。
キーストアは、Java SDKのkeytool
を使用して操作できます。
キーストアでkeytoolを実行して、空のパスワードで証明書を抽出します。その後、それを新しいキーストアにインポートします。今回は、実際のパスワードを使用します。
スイッチ-exportcert
はそれを達成するのに役立ちます。
Java sdkを更新したため、(ツールのセキュリティアップグレードのため)空のパスワードを入力できない場合があります。その場合は、古いsdkをインストールして、上記。
幸運を!
Keytoolプログラムを使用する代わりに、単純なJava SEプログラムを作成して、キーを使用するのに疲れたり、エイリアスを一覧表示したりします。APIを使用する必要があります(これを100%にするのではなく)空の(""
)パスワード。 portecle のようなサードパーティのツールを試して、キーを一覧表示/抽出することもできます。
デフォルトを試すAndroidデバッグモードのキーストアパスワードで、Android
またはJava cacertsのデフォルトchangeit
/changeme
。
私もこの問題に直面し、非常に奇妙でした。パスワードで保護されていないレガシーキーストアがありました。 SoapUIで正常に使用できましたが、keytool
および keystore Explorer で開けませんでした。私はすでにパスワードが設定されている新しいキーストアを作成する必要があり、それ以降はすべて問題ありませんでした。
Java 8はJava 7よりもうるさいです。
keytool -importkeystore -srckeystore client.jks -destkeystore client2.jsk -srcstoretype JKS -deststoretype JKS -deststorepass changeit
キーストアに空のパスワードを使用することはできません。
Jdk 1.3 keytoolが許可しない限り、私は確認しました http://docs.Oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html を参照してください。それ:
storepassは6文字以上である必要があります。キーストアのコンテンツにアクセスするすべてのコマンドに提供する必要があります。このようなコマンドの場合、コマンドラインで-storepassオプションを指定しないと、ユーザーにそのオプションの入力を求められます。
おもしろいことに、jdk 1.2からkeytoolを試してみたくなりました。そのドキュメントにはパスワードが必須であると記載されていないため、ダウンロードしましたが、インストールにはWindows NTボックスが必要です! Android=このキーツールバージョンを使用したことはないと思います。
申し訳ありませんが、パスワードを忘れたか、Caps Lockで入力したか、間違ったキーボードレイアウトが有効になっているようです。 :(
編集:
レイアウトの問題でない場合は、
上記のすべてが失敗した場合、それをクラックしてみることができます。関連質問: Android-キーストアのパスワードを忘れました。キーストアファイルを復号化できますか?
それは私にとってはうまくいきます:
keytool -list -keystore keyStoreFileWithotPassword.jks -protected
修正:list機能は、実際のパスワードを入力せずに機能することがわかります!しかしimport機能にはパスワードが必要です