签名密码忘记了,要命啊。。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