Ответ 1
Вы также можете проверить правильность пароля, не пытаясь сменить пароль. Я сделал это, указав свойства хранилища ключей с помощью этой команды:
keytool -list -keystore <keystorefile> -storepass <passwordtocheck>
Я могу автоматизировать некоторые вещи, которые включают андроид keytool и jarsigner. Инструмент берет хранилище ключей, пароль для хранилища ключей, имя псевдонима и пароль для псевдонима/ключа, и я пытаюсь найти способ явно проверить, правильно ли указан пароль для псевдонима/ключа.
Любые идеи? Кроме того, мне нужно проверить это без файла jar, чтобы подписать - получение этого файла в моем контексте является длительным, поэтому я хочу отменить раньше, чем позже.
Вы также можете проверить правильность пароля, не пытаясь сменить пароль. Я сделал это, указав свойства хранилища ключей с помощью этой команды:
keytool -list -keystore <keystorefile> -storepass <passwordtocheck>
Вы можете сделать это несколькими способами:
а. С помощью 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 в обоих случаях, поэтому вам нужно будет выполнить синтаксический анализ вывода программы, если вы хотите быть умным относительно типа ошибки.
В. С небольшой программой 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
, если пароль хранилища ключей неверен или с java.security.UnrecoverableKeyException
в строке 7, если пароль псевдонима неверен.