簽名密碼忘記了,要命啊。。java
android app簽名是使用的keystore文件/jks文件,若是是eclipse是keystore,android studio則是jks,若是忘記了的話很悲催:android
一、找到密碼git
二、改應用的包名,從新生成keystore文件,從新發布新的應用github
方案2對於應用開發者確定是巨大的災難了吧app
首先來介紹下找回密碼的幾種方式eclipse
若是以前有使用過android studio打包過,那麼android studio會把相關信息輸出到og文件中ide
Windows:svn
進入到C:\Users\Administrator\.AndroidStudio2.3\system\loggradle
這裏的Administrator是你當前系統的用戶名,.AndroidStudio2.3爲android studio的生成目錄(注意是隱藏文件,須要在文件夾選項中顯示隱藏的文件開啓)idea
打開idea.log文件,搜索Pandroid.injected.signing.store關鍵字,便可獲得相關的信息
[--configure-on-demand, -Pandroid.injected.invoked.from.ide=true,
-Pandroid.injected.signing.store.file=C:\Users\Administrator\lemon.jks,
-Pandroid.injected.signing.store.password=*****,
-Pandroid.injected.signing.key.alias=****,
-Pandroid.injected.signing.key.password=****,
-Pandroid.injected.apk.location=D:\svn_code\LemonBan\app,
-Pandroid.injected.signing.v1-enabled=true,
-Pandroid.injected.signing.v2-enabled=true,
--init-script, C:\Users\Administrator\AppData\Local\Temp\asLocalRepo2.gradle]
MAC平臺:
進入 Terminal, 定位 ~/Library/Logs -> AndroidStudioBeta ->idea.log.1
搜索 injected.signing.store
.gradle\2.4\taskArtifacts\taskArtifacts.bin對應文件有相關信息,可是這種方式在Gradle 2.10以後失效了
【依賴運行環境】:JDK7
【Github官網】:http://maxcamillo.github.io/android-keystore-password-recover/
這個軟件包提供三種方式進行猜想破解:
【簡單暴力破解】
暴力破解法會將密碼進行逐個推算直到找出真正的密碼爲止。命令行窗口輸入下面命令,程序就會從AAAAAA ,AAAAACWH...,每次改變後3個字符一個個嘗試下去。命令:
java -jar AndroidKeystoreBrute_v1.07.jar -m 1 -k "C:\\keystore.jks" -start AAAAAA
java -jar AndroidKeystoreBrute_v1.07.jar -m 1 -k "C:\\keystore.jks" -start AAAAAA
【字典破解】
所謂「字典」就是給密碼鎖定某個範圍,好比英文單詞以及生日的數字組合等,全部的英文單詞不過10萬個左右這樣能夠大大縮小密碼範圍,很大程度上縮短了破譯時間。wordlist.txt爲字典文件,命令:
java -jar AndroidKeystoreBrute_v1.07.jar -m 2 -k "C:\keystore.jks" -d "wordlist.txt"
java -jar AndroidKeystoreBrute_v1.07.jar -m 2 -k "C:\keystore.jks" -d "wordlist.txt"
【智能詞表破解】--優先推薦
智能詞表是根據你給定的詞,而後進行隨機組合進行碰撞。先建個txt存放你以爲密碼可能包含的某些字母或者數字等組合,而後輸入命令:
java -jar AndroidKeystoreBrute_v1.07.jar -m 3 -k "C:\keystore.jks" -d "wordlist.txt"
java -jar AndroidKeystoreBrute_v1.07.jar -m 3 -k "C:\keystore.jks" -d "wordlist.txt"
執行結果:
若是上面三種方式都沒效果,可使用下面這種方法來重置keystore(jks)密碼:
一、下載附件中的文件
二、配置好JDK的環境
三、保證keystore(jks)文件和下載的附件中的文件在同一目錄
四、運行 javac ChangePassword.java
五、運行java ChangePassword <keystore file> <new keystore file>
參考連接:
https://www.jianshu.com/p/91f58b632848
https://www.c-sharpcorner.com/blogs/forgot-keystore-passwordjks-file-you-can-still-recover-it