Android keystore 密码忘记了的找回办法
keystore密码忘记了,准备给自己的应用发布一个新版本,在apk打包时,发现之前的用的keystore密码忘了。
如果换一个keystore,则之前已经安装应用的用户就必须手工卸载原应用才能安装,非常麻烦,所以必须找回密码。
下边分享一下经验:
【软件】:Android Keystore Password Recovery
【网址】:https://code.google.com/p/android-keystore-password-recover/
【运行环境】:JDK7
下载jar包:https://drive.google.com/file/d/0B_Rw7kNjv3BATldrLXMwcVRud2c/edit?usp=sharing,试了多次,证明已经被天朝河蟹掉了,只能FQ下载。下载下来:AndroidKeystoreBrute_v1.05.jar
官方提供3中方法来破解密码:
[mw_shl_code=java,true]There are 3 Methods to recover your keystore password:
- Simply Bruteforce (简单的暴力破解)
- Dictionary Attack (字典破解)
- Smart Wordlist Attack (智能单词列表破解) 英文不好,直译的![/mw_shl_code]
用法:
[mw_shl_code=java,true]execute with
java -jar AndroidKeystoreBrute.jar <args>
possible args
-m <1..3> Method
-k <path> path to your keystore
-d <path> dictionary (for method 2 and 3)
-p use common replacements like '@' for 'a'(for method 3) WARNING - very slow!!
-start <String> sets the start String for the password (for brute force)
-w writes a new keystore with same password than the key
-h prints helpscreen
example for brute-force attack
java -jar AndroidKeystoreBrute_v1.05.jar -m 1 -k <...keystore> -start AAAAAA
example for dictionary attack
java -jar AndroidKeystoreBrute_v1.05.jar -m 2 -k "C:\\mykeystore.keystore" -d "wordlist.txt"
example for smart wordlist attack (recommend)
java -jar AndroidKeystoreBrute_v1.05.jar -m 3 -k "C:\\mykeystore.keystore" -d "wordlist.txt" [/mw_shl_code]
开始我用的是方法一,跑了一宿,也没跑完。默认的字母组合的密码太多了,用这种方法破解出密码太渺茫了。
后来我尝试使用方法三,其实我没注意,官方推荐就使用方法三:
先创建一个txt,比如passlib.txt: 在文本文档里输入自己常用的设置密码的短语,或者你隐约记得当初创建时可能用到的单词,反正能想到的统统写下来:
[mw_shl_code=java,true]helloworld
ILoveYou
java
android
com.ldxx.firstapp[/mw_shl_code]
然后执行:
[mw_shl_code=java,true] java -jar AndroidKeystoreBrute_v1.05.jar -m 3 -k "C:\\mykeystore.keystore" -d "passlib.txt" [/mw_shl_code]
若要是你创建的passlib.txt中的短语确实在你的keystore密码中出现过,那找回密码是瞬间的事:
我的执行结果:
[mw_shl_code=java,true] Got Password in 0 seconds
Password is: android521 for alias ldxxfirstapp[/mw_shl_code]
注:命令行执行java -jar 命令时,根目录一定是 AndroidKeystoreBrute_v1.05.jar所在的目录,比如 AndroidKeystoreBrute_v1.05.jar放在
C:\key\ AndroidKeystoreBrute_v1.05.jar下,先得cd C:\key 然后在执行,否则会报错的。