programing tip

Android에서 분실 한 키 저장소 비밀번호를 처리하는 방법은 무엇입니까?

itbloger 2020. 10. 20. 07:25
반응형

Android에서 분실 한 키 저장소 비밀번호를 처리하는 방법은 무엇입니까?


키 저장소 암호를 잊어 버려서 더 이상 무엇을해야할지 모르겠습니다 (변명을 할 수 없습니다). 버그를 수정했지만 더 이상 가능하지 않기 때문에 앱을 업데이트하고 싶습니다. 동일한 키 저장소를 사용하지만 새 키를 생성하면 어떻게됩니까? 그래도 앱을 업데이트 할 수 있고 업데이트 할 수없는 경우 업데이트 된 버전에 대한 정보를 사용자에게 제공하려면 어떻게해야합니까?

누군가 이와 같은 문제가 있거나 문제가 발생한 경우 상황을 해결하기 위해 어떤 조언을 할 수 있습니까? 다행히도 무료 앱입니다.


이 링크 보기

안타깝지만 키 저장소 또는 키 저장소의 비밀번호를 분실하면 애플리케이션이 고아가됩니다. 할 수있는 유일한 방법은 새 키를 사용하여 앱을 시장에 다시 제출하는 것입니다.

항상 키 저장소를 백업하고 안전한 위치에 암호를 적어 두십시오.


이 문제가 직접 발생했습니다. 운 좋게도 Gradle의 임시 파일에서 비밀번호를 찾을 수있었습니다. 누군가 여기에 도착할 경우를 대비하여

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

평문으로 거기에있었습니다. 일반적으로 암호의 일부를 기억하고 있다면이 하위 문자열이 포함 된 파일을 검색해보십시오.

여기에 버리고 싶었는데 결국 누군가에게 도움이 될 것입니다.


잘못된 암호가 제공되는 경우 한 번이라도 다음 시도에 대해 계속 말합니다.

키 저장소가 변조되었거나 비밀번호가 올바르지 않습니다.

올바른 것을 제공하더라도. 여러 번 해봤는데 일종의 보호 책일 수도 있습니다.
내보내기 마법사를 닫고 올바른 비밀번호로 다시 시작하면 이제 작동합니다. :)


Brute가 최선의 방법입니다!

다음은 나를 도왔던 스크립트입니다.

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

매우 빠른 복구를 위해 암호에 포함 할 수 있는 단어 목록을 선택적으로 제공 할 수 있습니다 (저에게는 1 초 미만으로 작동 함)


MAC에서 콘솔 유틸리티를 실행하고 ~ / Library / Logs-> AndroidStudio-> idea.log.1 (또는 이전 로그 번호)까지 아래로 스크롤 한 다음 "keystore"를 검색하면 로그 어딘가에 나타납니다.

원래 질문 : 링크


taskHistory로 이동

마침내 이틀을 보낸 후 해결책을 찾았습니다 ...

다음과 같이하세요:

  1. 프로젝트로 이동
  2. .gradle에서 내 경우에는 gradle 버전 폴더를 찾으십시오 .4.1 (그림 참조)
  3. 4.1 폴더를 확장 한 다음 taskHistory 폴더에서 taskHistory.bin 파일을 찾을 수 있습니다.
  4. android studio 자체에서 taskHistory.bin 파일을 엽니 다.
  5. ".storePassword"를 검색하십시오. .. 키 저장소 비밀번호를 얻었습니다.

이것은 정말 저에게 효과적이었습니다.

이것을 시도하고 행복한 코딩 !!!


사실, 잃는 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@Artur의 대답과 같이 bruteforce에 의지 할 수 있습니다.

이 접근 방식은 항상 저에게 효과적이었습니다.


댓글에만있는 것이 아니기 때문에 답을해야한다고 생각합니다. @ 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

다른 사람을 도와주세요 !!!


다행히도 Android 스튜디오 로그에서 키 저장소 경로 및 별칭 이름과 함께 분실 한 비밀번호를 찾았습니다.

Linux / Unix 기반 컴퓨터를 실행하는 경우.

Library Logs 디렉토리로 이동

cd ~/Library/Logs/

마지막 릴리스 APK를 빌드하는 데 사용한 Android 스튜디오 버전을 기억한다면 거기에 있습니다. 해당 디렉토리로 이동

예 : 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 사용자에게 도움이 되었기를 바랍니다.


조금 늦었을 수도 있지만 확실히 누군가에게 도움이 될 것입니다. 기억 나는 것이 있으면 비밀번호를 검색 할 수 있습니다.

signingConfig.storePassword

또한 키 별칭을 잊어 버린 경우 여기에서 signingConfig.keyAlias 와 같은 항목도 검색 할 수 있습니다.

Project.gradle \ 3.3 \ taskArtifacts \ taskArtifacts.bin

누군가를 도울 수 있기를 바랍니다.


이 문제를 접할 수있는 다른 사람을 위해 본인이나이 기사를 검색하는 다른 사람 (나와 같은)에게 해당되는 답변을 공유하고 싶습니다.

Eclipse를 사용하고 있으며 1.0 릴리스 용으로 키 저장소를 만들었습니다. 3 개월을 앞두고 1.1로 업데이트하고 싶었습니다. Eclipse에서 내보내기 ...를 선택하고 해당 키 저장소를 선택했을 때 기억할 수있는 암호가 작동하지 않았습니다. "키 스토어가 변조되었거나 비밀번호가 잘못되었습니다." 라고 표시 될 때마다 내가 그것을 작동 시키려고 노력할 수있는 한 (약 1 주일 정도) 무차별 대입 프로그램을 실행할 준비를하고있는 시점에 이르렀습니다.

운 좋게도 Eclipse 외부에서 서명되지 않은 .apk 파일에 서명합니다. 짜잔-작동했습니다! 내 비밀번호는 항상 정확했습니다! 이유는 모르겠지만 내보내기 메뉴를 통해 Eclipse에 서명하면 비밀번호가 정확하더라도 오류가보고되었습니다.

따라서이 오류가 발생 하는 경우 시장에 APK를 준비하는 데 도움이 되는 단계 ( Android 문서 에서 가져옴)는 다음과 같습니다.

참고 : Eclipse에서 서명되지 않은 APK를 가져 오려면 프로젝트> Android 도구> 서명되지 않은 애플리케이션 내보내기를 마우스 오른쪽 버튼으로 클릭합니다.

  1. 키 저장소로 서명되지 않은 APK 파일 서명

    ㅏ. 관리자 cmd 프롬프트를 열고 "c : \ Program Files \ Java \ jdk1.6.0_25 \ bin"또는 가지고있는 Java 버전 (서명되지 않은 apk 파일 및 키 저장소를 복사 한 위치)으로 이동합니다.

    비. 동일한 디렉토리에 키 저장소 파일과 서명되지 않은 apk가있는 cmd 프롬프트에서 다음 명령을 입력하십시오. jarsigner -keystore mykeystorename.keystore -verbose unsigned.apk myaliasnamefromkeystore

    씨. "Enter Passphrase for keystore :"라고 표시됩니다. 그것을 입력하고 Return을 누르십시오.

    디. ===> 성공은 다음과 같습니다.

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

    이자형. 서명되지 않은 버전이 제자리에 덮어 써 지므로 서명 된 apk 파일은 이제 서명되지 않은 파일과 동일한 파일 이름입니다.

  2. ZipAlign을 사용하여 시장에 배포 할 서명 된 apk 파일 압축

    ㅏ. 관리자 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 Studio에서 분실 한 키 저장소 비밀번호를 복구하기위한 가능한 옵션을 조사하는 데 거의 하루를 보낸 후. 다음 4 가지 가능한 방법을 찾았습니다.

  1. AndroidKeystoreBrute사용 하여 비밀번호를 검색하세요. 이 방법은 암호를 부분적으로 잊어 버린 경우에 매우 유용합니다. 즉, 여전히 암호에 대한 힌트가 마음에 남아 있음을 의미합니다.

  2. 이전에 동일한 머신으로 앱 (키 저장소 비밀번호를 찾는 앱)을 출시 한 경우 Android Studio 로그 파일을 통해 검색 할 수도 있습니다. 다음 디렉토리를 참조하십시오.

    맥 OS X

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

    Linux (가능한 위치)

    / home / user_name / AndroidStudio / system / log

    Windows (가능한 위치)

    C : \ Users \ user_name \ AndroidStudio \ system \ log

    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 기본 설정을 가져올 수 있습니다.

    맥 OS X

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

    Linux (가능한 위치)

    / home / user_name / AndroidStudio

    Windows (가능한 위치)

    c : \ 사용자 \ 사용자 이름 \ .AndroidStudio

    이전 IDE의 환경 설정을 새 IDE로 가져 오거나 가져 오면 이전 Android Studio IDE를 사용하고 이전에 서명했을 때와 동일한 경로에 키 저장소 파일을 저장하고 마지막으로 비밀번호를 저장하십시오.

    이런 식으로 프로젝트를 열고 Build-> Generate Signed APK를 시도하고 이전 위치에서 키 저장소 파일을 선택합니다. 자동으로 비밀번호를 검색하고 출시를 위해 서명 된 APK를 계속 생성합니다.

    릴리스 APK가 성공적으로 생성되면 앞서 언급 한 옵션 2에 따라 최근 생성 된 릴리스 APK의 로그 파일에서 비밀번호를 확인할 수 있습니다.


솔루션 2019 (Windows, Android Studio 3.3, gradle 4.10) :

이 솔루션은 "암호 기억"확인란이 이전에 표시된 경우에만 작동합니다.

우선이 버전의 gradle에는 taskArtifacts.bin이 존재하지 않으며 idea.log는 암호에 별표를 표시합니다. 이것은 나에게 효과가 없었던 옛날 솔루션이었습니다.

일반 텍스트 비밀번호를 찾은 위치 : C : \ Users \ {username} \ AndroidStudioProjects \ {project} \ app \ build \ intermediates \ signing_config \ release \ out \ signing-config.json

키 : mStorePassword 및 mKeyPassword.

다른 사람에게 도움이 되었으면합니다.


먼저 AndroidKeystoreBrute_v1.05.jar를 다운로드 한 다음 주어진 이미지를 따릅니다.여기에 이미지 설명 입력

(wordlist.txt)와 같은 하나의 단어 목록 파일을 준비하십시오. 해당 파일에서 다음과 같은 힌트를 제공하십시오.

비밀번호 힌트:

사용자

사용자

암호

암호

pa55word

암호

@

*

#

$

&

1

2

123

789

U는 귀하의 암호를 얻을 것입니다.


이것을 또 다른 가능성으로 추가합니다. 과거 어느 시점에서 서명 구성을 지정한 경우 앱의 build.gradle 파일에 답이 바로 코 밑에있을 수 있습니다.

signingConfigs {
    config {
        keyAlias 'My App'
        keyPassword 'password'
        storeFile file('/storefile/location')
        storePassword 'anotherpassword'
    }
}

운이 좋으세요?!


나는 한 번에 같은 문제가 있었다. Google Play의 앱 서명을 사용하면 키 저장소를 잃어 버리거나 비밀번호를 잃어 버리는 것이 이전처럼 큰 문제는 아니지만 개발자로서 우리는 비밀번호를 변경하고 생성 된 키 저장소 파일을 Google에서 처리하기 위해 며칠을 기다리지 않고 사용하는 것을 선호합니다. (Google에서이 문제를 처리하려면이 링크 를 사용하여 요청하십시오.)이 문제를 직접 처리하려면 먼저이 링크 에서 두 개의 .java 파일을 다운로드 하십시오 . 그런 다음 javac ChangePassword.java명령으로 ChangePassword.java를 컴파일하십시오 . 그런 다음 실행 후

java ChangePassword <oldKeystoreFileName.keystore> <newKeystoreFileName.keystore>

변경 oldKeystoreFileName.keystore 현재 키 스토어 파일의 경로 / 이름, 그리고 newKeystoreFileName.keystore 새로운 생성 된 새로운 키 스토어 파일의 경로 / 이름. 이것은 당신을 승진시킬 것입니다

키 저장소 비밀번호 입력 :

. 원하는 것을 입력하기 만하면됩니다. :) 분실 한 원래 비밀번호 일 필요는 없습니다. 그런 다음 *로 새 암호를 입력하십시오.

새 키 저장소 비밀번호 :

  • 짜잔, 그게 다야. 이것은 키 저장소의 체크섬을 변경하지 않으며 앱 서명 또는 play.google 이벤트에 업로드하는 데 문제가되지 않습니다.

두 암호가 다르면 Android 무차별 대입이 작동하지 않으므로 가장 좋은 방법은 다음과 같은 파일을 찾는 것입니다.

log.idea

C : / users / 이름이 지정된 계정에서 Android 폴더의 메모장에서 lpg.idea 파일을 연 다음 검색 할 수 있습니다.

별명

메모장에서 찾기 옵션을 사용하면 암호와 별칭 및 별칭 암호가 표시되었음을 알 수 있습니다.


요약하면이 질문에 대한 3 개의 답이 있습니다 (수용된 답으로 답이 제공되지 않음).

  1. 로그가 손상되지 않은 경우 의 Georgi Koemdzhiev의 답변 에 따라 Android Studio 로그 파일에서 비밀번호를 찾을 수 있습니다 .

  2. ElDoRado1239Gueorgui Obregon의 답변 에 따라 .gradle 디렉토리의 'taskArtifacts.bin'파일에서 비밀번호를 검색 할 수 있습니다 . 최신 버전의 Gradle (2.10 이상)에서는 작동하지 않는 것 같습니다.

  3. 의 Srinivas Keerthiprakasam의 답변에 따라 AndroidKeystoreBrute를 사용하여 비밀번호를 추측하거나 무차별 대입하세요 .

이 세 가지 솔루션은 모두이 링크 에서 자세히 다룹니다 .


비밀번호를 찾았습니다

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

검색

Pandroid.injected.signing.store.password

이동 taskhistory.bin.gradle암호를 찾을 때까지 아래로 프로젝트 검색 암호 스크롤의 폴더


열기 taskHistory.bin및 검색storePassword


제 경우에는 올바른 암호를 저장했지만 별칭 이름이 잘못되었습니다. 그래서 잘못된 암호라고 생각했기 때문에 (ionic 패키지 사용) 별칭 이름을 가져 오기 위해이 명령을 사용했습니다.

keytool -list -v -keystore

그리고 키 스토어를 다시 사용할 수있었습니다!


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

1st try to create new keystore....then open taskArtifacts.bin with notepad and look for password that you just given....you will able to figure out words near to password that you just given then search for these words near to your password in same file....you will able to figure out the password.....:)


SOLUTION 2018: Sign app with new keystore file if you missing password or jks file.

1) Create new keystore.jks file with comand line (not android studio build menu)

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

Windows example: "C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore "C:\keystore_new.jks"

2) Generate a .pem file from new keystore

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

Windows example: "C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -export -rfc -alias upload -file "C:\upload_cert.pem" -keystore "C:\keystore_new.jks"

3) Use this support form, set "keystore problem" and with attachment add .pem file: https://support.google.com/googleplay/android-developer/contact/otherbugs

4) 12-48h you new keystore is enabled. Update your app on playstore with new apk signed with new keystore :D


IF you're able to build your app from a PC, but you don't recall the password, here's what you can do to retrieve the password:

Method 1:

In your build.gradle, add println MYAPP_RELEASE_KEY_PASSWORD as below:

signingConfigs {
    release {
        if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
            println MYAPP_RELEASE_KEY_PASSWORD
        }
    }
}

After that, run cd android && ./gradlew assembleRelease

Method 2:

Run keytool -list -v -keystore your <.keystore file path> e.g. keytool -list -v -keystore ./app/my-app-key.keystore.

It will ask for you to Enter keystore password: Just press enter key here. and you will be able to find mapped to Alias name:

Then, run grep -rn "<your alias name>" . in your terminal and you will be able to see your signing.json file as below:

./app/build/intermediates/signing_config/release/out/signing-config.json

The file will have your password in json format with key "mKeyPassword":" < your password > "


No need to use brute force a simple way is to find your plain text password.

goto:

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

Open:

taskArtifacts.bin 

when you open taskArtifacts.bin might look encrypted, don't worry about that search for ".keyPassword" a couple times. Then you will find your password in plain text. It may resemble:

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

Hope this was helpful.


Well to look up for lost keystore password you can try this, For me the following solution worked pretty well.

find the idea log files in ~/Library/Logs/AndroidStudio2.0. You can also locate these by opening Android Studio-> Help->Show Log in File manager.

Open the idea.log file. Note: There may be multiple files named idea.log.1, idea.log.2 etc. Look through each of them till you find the password.

Search for “Pandroid.injected.signing.key.password” and you can see the key password.

Hope it helps...


I have experienced same problem, I have tried below steps to solve the problem :-

  1. Create sign apk with creating new keystore and new password.

  2. Now create again sign apk by using your old keystore (keystore used at the time of previous apk build upload) but now use new keystore password.

  3. Now definitely you will create successfully sign apk using old keystore.

    • Hope this solution will help you..

In my case I had upgraded my Android Studio from 2.3 to 3.0.1, When i trying to generate a signed apk for a new update i got "Keystore was tampered with, or password was incorrect" error. I had my previous keystore and i was absolutely sure of the password, using them I had updated the app before a couple of times. After searching a lot none of the solutions worked for me. Here is what i did.

  • Opened another project.
  • 파일 / 새로 만들기 / 프로젝트 가져 오기를 사용하여 내 프로젝트를 가져 왔습니다.
  • gradle이 빌드되면 서명 된 APK를 생성하려고했습니다. 서명 된 APK 빌드 / 생성
  • "Choose Existing"을 클릭하고 내 키 저장소의 경로를 제공했습니다.
  • 내 키 저장소 비밀번호를 입력했습니다.
  • 키 별칭을 선택했습니다.
  • 내 키 비밀번호 입력 (내 경우에는 키 저장소 비밀번호와 키 비밀번호가 동일 함)
  • 다음을 클릭하고 새 APK의 경로를 제공하고 두 확인란을 모두 선택했습니다.
  • 새 APK가 성공적으로 생성되었습니다.

이것이 누구에게나 도움이되기를 바랍니다.


아무것도 작동하지 않으면이 라인을 시도하십시오. .jks가 저장된 경로로 이동합니다. 명령 프롬프트에서이 명령을 실행하십시오. 암호를 묻고 무시하고 Enter를 누릅니다.

keytool -list -keystore sample.jks

참고 URL : https://stackoverflow.com/questions/6089813/how-to-handle-a-lost-keystore-password-in-android

반응형