Как обрабатывать потерянный пароль KeyStore в Android?

Я забыл свой пароль к хранилищу ключей, и я не знаю, что делать дальше (я не могу или не буду давать никаких оправданий). Я хочу обновить приложение, потому что я просто исправил ошибку, но ее больше не удалось. Что произойдет, если я использую одно и то же хранилище ключей, но создаю новый ключ? Смогу ли я обновить приложение, и если это невозможно, как я могу предоставить информацию пользователям о обновленной версии?

Если у кого-то была такая проблема или возникла проблема, какой совет вы можете дать, чтобы помочь исправить ситуацию? К счастью, это бесплатное приложение.

Solutions Collecting From Web of "Как обрабатывать потерянный пароль KeyStore в Android?"

См. Эту ссылку

Это печально, но когда вы теряете хранилище ключей или пароль в хранилище ключей, ваше приложение становится сиротой. Единственное, что вы можете сделать, это повторно отправить свое приложение на рынок под новым ключом.

ВСЕГДА создайте резервную копию своего хранилища ключей и напишите пароли в безопасном месте.

Я просто столкнулся с этой проблемой – к счастью, мне удалось найти пароль в временном файле Gradle. На всякий случай, когда кто-нибудь приземлится здесь, попробуйте найти

..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin 

Он был там в открытом виде. В общем, если вы помните хотя бы часть своего пароля, попробуйте найти файл, содержащий эту подстроку, и, надеюсь, вы что-нибудь поймаете.

Хотелось бросить его здесь, может быть, это в конечном итоге поможет кому-то.

Если предоставляется неверный пароль, даже один раз, он продолжает говорить о следующих попытках:

Keystore неправильно или неверно.

Даже когда вы предоставляете правильный. Я пробовал это несколько раз, возможно, это какая-то защита.
Закройте мастер экспорта и запустите его снова с правильным паролем, теперь он работает 🙂

Брут – ваш лучший выбор!

Вот сценарий, который помог мне:

https://code.google.com/p/android-keystore-password-recover/wiki/HowTo

Вы можете опционально предоставить ему список слов, которые может включать пароль для очень быстрого восстановления (для меня это работало менее чем за 1 секунду)

В утилите консоли запуска MAC и прокручивается до ~ / Library / Logs -> AndroidStudio -> idea.log.1 (или любой старый номер журнала). Затем я искал «keystore» и должен появляться где-то в журналах.

Оригинальный вопрос: ссылка

Фактически, потеря keystore password хранения keystore password не является проблемой.
Вы можете создать новое хранилище ключей и установить для него новый пароль с помощью команды keytool ниже. Вам не нужен оригинальный пароль хранилища ключей:

keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore

При появлении запроса создайте пароль для своего new.keystore а для пароля источника ключей (который вы потеряли) просто нажмите Enter .
Вы получите предупреждение о том, что целостность не проверена, и вы получите свой new.keystore, идентичный оригиналу, с вновь установленным паролем.

Причиной этого является keystore password который используется только для обеспечения целостности keystore , он не шифрует данные с ним, в отличие от private key password , который фактически заставляет ваш секретный ключ зашифровать.

Обратите внимание, что вы должны знать свой private key password для подписывания своих приложений. Ну, если это так же, как и забытый keystore password вы можете прибегнуть к брутфорсу, как в ответе @ Артура.

Этот подход всегда работал для меня.

Для всех, кто может столкнуться с этим, я хотел бы поделиться с вами ответом, который может иметь место для вас или для других, просматривающих эту статью (например, я).

Я использую Eclipse и создал свое хранилище ключей для него для выпуска 1.0. Ускорьтесь на 3 месяца, и я хочу обновить его до 1.1. Когда я выбрал Export … в Eclipse и выбрал это хранилище ключей, ни один из моих паролей, который я мог запомнить, не работал. Каждый раз, когда он говорил, что «Keystore неправильно или неверно введен пароль». Это дошло до того момента, когда я собирался запустить программу грубой силы на нем, пока я мог стоять (неделю или около того), чтобы попытаться заставить его работать.

К счастью, я должен подписать мой неподписанный файл .apk за пределами Eclipse. Вуаля – это сработало! Мой пароль был правильным все время! Я не уверен, почему, но, подписав его в Eclipse через меню «Экспорт», сообщалось об ошибке, даже когда мой пароль был прав.

Итак, если вы получаете эту ошибку, вот мои шаги (взятые из документации для Android ), чтобы помочь вам получить ваш апк для рынка.

ПРИМЕЧАНИЕ. Чтобы получить unsigned apk из Eclipse: щелкните правой кнопкой мыши проект> Инструменты Android> Экспорт без подписей

  1. Подписать файл без знака apk с хранилищем ключей

    а. Откройте приглашение администратора cmd и перейдите к «c: \ Program Files \ Java \ jdk1.6.0_25 \ bin» или любой другой версии java (где вы скопировали файл без знака apk и хранилище ключей)

    б. В командной строке cmd с файлом keystore и unsigned apk в том же каталоге введите следующую команду: jarsigner -keystore mykeystorename.keystore -verbose unsigned.apk myaliasnamefromkeystore

    с. Он скажет: «Введите пароль для ключевого хранилища:». Введите его и нажмите Return.

    д. ===> Успех выглядит так:

     adding: META-INF/MANIFEST.MF ... signing: classes.dex 

    е. Неподписанная версия перезаписывается на месте, поэтому ваш подписанный файл apk теперь имеет то же имя файла, что и без знака

  2. Используйте ZipAlign для сжатия подписанного файла apk для распространения на рынке

    а. Откройте подсказку admin cmd и перейдите в «c: \ AndroidSDK \ tools» или где бы вы ни установили Android SDK

    б. Введите эту команду: zipalign -v 4 signed.apk signedaligned.apk

    с. ===> Успех выглядит так:

     Verifying alignment of signedaligned.apk (4) 50 META-INF/MANIFEST.MF (OK - compressed) ... 1047129 classes.dex (OK - compressed) Verification succesful 

    д. Подписанный и выровненный файл находится в файле signedaligned.apk (имя файла, указанное в предыдущей команде)

==========================

К счастью, я нашел свой потерянный пароль вместе с ключом и именем псевдонима из моих журналов студии Android.

Если вы используете машины на основе Linux / Unix.

Перейдите в каталог Библиотечные журналы

 cd ~/Library/Logs/ 

Если вы помните свою версию студии для Android, которую вы использовали для создания последней версии APK. Перейдите к этому каталогу

Ex: cd AndroidStudio1.5 /

Там вы найдете файлы журнала. В любом из файлов журнала (idea.log) вы найдете свои учетные данные хранилища ключей

пример

 -Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, -Pandroid.injected.signing.store.password=mystorepassword, -Pandroid.injected.signing.key.alias=myandroidkey, -Pandroid.injected.signing.key.password=mykeypassword, 

Надеюсь, это поможет пользователям Android Studio

Сначала загрузите AndroidKeystoreBrute_v1.05.jar, а затем выполните заданное изображение. Введите описание изображения здесь

Подготовьте один файл списка слов (wordlist.txt), в этом файле укажите свой намек

Подсказка пароля:

пользователи

пользователей

пароль

пароль

pa55word

пароль

@

*

#

$

&

1

2

123

+789

U получит ваш пароль.

Я чувствую, что мне нужно дать ему ответ, потому что это не может быть просто в комментариях. Как @ ElDoRado1239 говорит в своем ответе (не забудьте перечесть его ответ;)

  • ..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin в моем случае был в ..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.bin потому что я использую gradle 2.2.1
  • Затем найдите storePassword как @Moxet Khan говорит в комментариях … в моем случае это было на линии signingConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias

Надеюсь помочь кому-то еще !!!

У Зака ​​Клиппенштейна в Google+ была такая же проблема, как и вы. Вы можете следить за этой темой.

Проведя почти день исследования возможных вариантов восстановления потерянного пароля хранилища ключей в Android Studio. Я нашел следующие 4 возможных способа сделать это:

  1. Используйте AndroidKeystoreBrute для получения пароля. Этот метод весьма полезен, когда вы частично забыли свой пароль, так что у вас все еще есть какие-то намеки на ваш пароль.

  2. Вы также можете получить его через файлы журнала Android Studio, если ранее вы открыли приложение (для которого вы нашли пароль хранилища ключей) с помощью той же машины. Обратитесь к следующему каталогу:

    Mac OS X

    ~ / Library / Logs / AndroidStudio / idea.log.1

    Linux (возможное местоположение)

    / Главная / user_name / AndroidStudio / системы / журнал

    Windows (возможное расположение)

    C: \ Users \ имя_пользователя \ AndroidStudio \ система \ журнал

    И найдите Pandroid.injected.signing.key.password внутри файла. Вы увидите пароль, если ранее вы подписали приложение с той же версией Android Studio, в которой вы сейчас находитесь.

  3. Вы также можете получить пароль через каталог .gradle вашего проекта. Найдите следующий путь

    project_directory / .gradle / 2,4 / taskArtifacts / taskArtifacts.bin.

    Примечание. Это, похоже, не работает для более новых версий Gradle (2.10 и выше).

  4. Если ни одно из вышеперечисленных решений не работает, вы можете попробовать это, но для этого вам также потребуется приложение Android Studio IDE или его предпочтения, в которых сохранен пароль для хранилища ключей проекта (с помощью параметра «Запомнить пароль» во время подписания приложение). Вы можете получить настройки IDE по следующему пути:

    Mac OS X

    ~ / Library / Logs / AndroidStudio / idea.log.1

    Linux (возможное местоположение)

    / Главная / user_name / AndroidStudio

    Windows (возможное расположение)

    C: \ пользователь \ имя пользователя \ .AndroidStudio

    Просто используйте старшую платформу Android Studio, если у вас есть или импортируйте предпочтения старой IDE в новую среду IDE, а также поместите файл хранилища ключей в тот же путь, где он был ранее, когда вы его подписали и сохранили пароль в прошлый раз.

    Таким образом, как только вы откроете проект и попробуйте Build-> Generate Signed APK и выберите файл хранилища ключей из более раннего местоположения. Он автоматически получит пароль и продолжит создание подписанного APK для выпуска.

    Как только APK выпуска будет успешно создан, вы можете выполнить описанный ранее вариант 2, чтобы проверить свой пароль из файла журнала для недавно созданного APK выпуска.

Android грубой силы не будет работать, если ваши оба пароля отличаются друг от друга, поэтому лучший вариант может быть таким, чтобы попытаться найти файл с именем as

log.idea

В вашей учетной записи C: / users / your named, вы могли бы обнаружить, что там, в папке android, откройте этот файл lpg.idea в блокноте, а затем выполните поиск

псевдоним

Используя опцию find в блокноте, вы обнаружите, что там были показаны пароли, псевдонимы и псевдонимы passwors

Подводя итог, есть 3 ответа на этот вопрос (и решение не дано принятым ответом):

  1. Если у вас нет данных в журнале, вы можете найти пароль в файлах журналов Android Studio в соответствии с ответом Георгия Коемджиева выше.

  2. Вы можете получить пароль из файла taskArtifacts.bin в каталоге .gradle в соответствии с приведенными выше ответами ElDoRado1239 и Gueorgui Obregon . Это, похоже, не работает для более новых версий Gradle (2.10 и выше).

  3. Используйте AndroidKeystoreBrute, чтобы угадать или набросить свой пароль в соответствии с ответом Шриниваса Киртипракасама выше.

Все эти 3 решения подробно рассматриваются по этой ссылке .

В моем случае я получил неправильное имя псевдонима, хотя я сохранил правильный пароль. Поэтому я подумал, что это неправильный пароль (с использованием ионного пакета), поэтому я использовал эту команду для получения псевдонима

Keytool -list -v -keystore

И я снова смог использовать хранилище ключей!

C: \ Users \ Admin \ AndroidStudioProjects \ TrumpetTVChannel2.gradle \ 2.14.1 \ taskArtifacts \ taskArtifacts.bin

Сначала попробуйте создать новое хранилище ключей … затем откройте taskArtifacts.bin с помощью блокнота и найдите пароль, который вы только что дали … вы сможете найти слова рядом с паролем, который вы только что дали, ищите эти слова рядом с Ваш пароль в том же файле …. вы сможете выяснить пароль ….. 🙂

Не нужно использовать грубую силу простым способом, чтобы найти свой пароль с открытым текстом.

идти к:

 C:\Users\<your username>\AndroidStudioProjects\WhatsAppDP\.gradle\2.2.1\taskArtifacts 

Открыто:

 taskArtifacts.bin 

При открытии taskArtifacts.bin может выглядеть зашифрованным, не беспокойтесь об этом поиске «.keyPassword» пару раз. Затем вы найдете свой пароль в виде обычного текста. Он может напоминать:

 signingConfig.keyPassword¬í t <your password>Æù 

Надеюсь, это было полезно.

Я нашел пароль в

 C:\Users\{Username}\.AndroidStudio2.2\system\log\idea.txt 

Искать

 Pandroid.injected.signing.store.password 

Я столкнулся с такой же проблемой, я попытался выполнить следующие шаги для решения проблемы:

  1. Создайте знак apk с созданием нового хранилища ключей и нового пароля.

  2. Теперь создайте снова знак apk, используя ваше старое хранилище ключей (хранилище ключей, используемое во время предыдущей загрузки сборки apk), но теперь используйте новый пароль хранилища ключей.

  3. Теперь определенно вы будете успешно создавать знак apk, используя старое хранилище ключей.

    • Надеюсь, это решение поможет вам.

Ну, чтобы найти потерянный пароль для ключей, вы можете попробовать это. Для меня следующее решение работало довольно хорошо.

Найти файлы журнала идей в ~/Library/Logs/AndroidStudio2.0 . Вы также можете найти их, открыв Android Studio-> Help-> Показать журнал в Диспетчере файлов.

Откройте файл idea.log . Примечание. Может быть несколько файлов с именем idea.log.1 , idea.log.2 и т. Д. Просматривайте каждый из них, пока не найдете пароль.

Найдите “Pandroid.injected.signing.key.password” и вы можете увидеть ключевой пароль.

Надеюсь, поможет…

Ничто не будет работать, поэтому, пожалуйста, не используйте какие-либо методы для восстановления, все из которых бесполезны, так это то, что вам нужно повторно отправить приложение с помощью нового ключа и отменить публикацию старого приложения