昨天准备给自己的应用发布一个新版本,在apk打包时,发现之前的用的keystore密码忘了。
蛋碎了一地,我把我所能想到的密码都试了一遍(注:我平常在各个门户网站注册基本上用的都是那几个字母和数字组合做密码),无果。
折腾到凌晨一点半,死的心都有了。

Google和百度搜个底朝天,也没找到解决办法,Stackoverflow上的大牛们说,只有两个办法:1.想出密码 ;2.重新修改包名,重新生成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中方法来破解密码:

1 There
are
3

Methods to recover your keystore password:
2 -
Simply Bruteforce          (简单的暴力破解)
3 -
Dictionary Attack           (字典破解)
4 -
Smart Wordlist Attack   (智能单词列表破解)       英文不好,直译的!

用法:

01 execute
with
02 java
-jar AndroidKeystoreBrute.jar <args>
03 possible
args
04 -m
<
1..3>
Method
05 -k
<path>  path to your keystore
06 -d
<path> dictionary (
for

method
2

and
3)
07 -p
use common replacements like
'@'

for

'a'
(for

method
3)
WARNING - very slow!!
08 -start
<String> sets the start String
for

the password (
for

brute force)
09 -w
writes a
new

keystore with same password than the key
10 -h
prints helpscreen
11 example
for

brute-force attack
12 java
-jar AndroidKeystoreBrute_v1.
05.jar
-m
1

-k <...keystore> -start AAAAAA
13 example
for

dictionary attack
14 java
-jar AndroidKeystoreBrute_v1.
05.jar
-m
2

-k
"C:\\mykeystore.keystore"

-d
"wordlist.txt"
15 example
for

smart wordlist attack (recommend)
16  
17 java
-jar AndroidKeystoreBrute_v1.
05.jar
-m
3

-k
"C:\\mykeystore.keystore"

-d
"wordlist.txt"

开始我用的是方法一,跑了一宿,也没跑完。默认的字母组合的密码太多了,用这种方法破解出密码太渺茫了。

后来我尝试使用方法三,其实我没注意,官方推荐就使用方法三:
          先创建一个txt,比如passlib.txt: 在文本文档里输入自己常用的设置密码的短语,或者你隐约记得当初创建时可能用到的单词,反正能想到的统统写下来:

1 helloworld
2     
    
ILoveYou
3     
    
java
4     
    
android
5     
    
com.ldxx.firstapp

然后执行:

1 java
-jar AndroidKeystoreBrute_v1.
05.jar
-m
3

-k
"C:\\mykeystore.keystore"

-d
"passlib.txt"

若要是你创建的passlib.txt中的短语确实在你的keystore密码中出现过,那找回密码是瞬间的事:
       我的执行结果:

1 Got
Password in
0

seconds
2      Password
is: android521
for

alias ldxxfirstapp

注:命令行执行java -jar 命令时,根目录一定是 AndroidKeystoreBrute_v1.05.jar所在的目录,比如 AndroidKeystoreBrute_v1.05.jar放在
C:\key\ AndroidKeystoreBrute_v1.05.jar下,先得cd C:\key 然后在执行,否则会报错的。

转载自:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=333163

keystore找回密码的更多相关文章

  1. android发布新版忘记keystore(jks)密码终极解决方案

    android app签名是使用的keystore文件/jks文件,如果是eclipse是keystore,android studio则是jks,如果忘记了的话很悲催: 1.找到密码 2.改应用的包 ...

  2. (进阶篇)PHP+Mysql+jQuery找回密码

    通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...

  3. mysql找回密码

    1.打开任务管理器,关闭mysqld.exe 2.win+r运行cmd打开控制台,输入mysqld --skip-grant-tables启动服务器 3.win+r重新运行cmd打开控制台,输入mys ...

  4. 修改Android签名证书keystore的密码、别名alias以及别名密码

    Eclipse ADT的Custom debug keystore自定义调试证书的时候,Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指 ...

  5. Java实现邮箱找回密码 --转载

    通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的 ...

  6. WordPress 使用 Pie-Register 添加前台注册、登录、找回密码和编辑个人资料功能

    转自:http://www.wpdaxue.com/front-end-publishing.html Pie-Register 是一个功能比较完善的 WordPress 才能,使用它可以很方便添加和 ...

  7. Java实现邮箱找回密码

    通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的 ...

  8. 关于wordpress忘记密码 找回密码的方式

    1.通过直接修改数据库中密码的加密字符(如果wordpress的版本不同,那么此方法是不好实现的) 2.使用找回密码的方式:通过邮箱找回密码 前端登录密码错误后 会显示   错误); 方法二 打开WP ...

  9. php邮箱找回密码功能

    原理很简单: 用户找回密码的时候,填写用户名,程序得到用户名便可以去数据库取出用户对应的密码以及当时填写的邮箱, 根据用户名和密码生成一个key=md5(username+password),然后$s ...

随机推荐

  1. Codeforces Round #489 (Div. 2) B、C

    B. Nastya Studies Informatics time limit per test 1 second memory limit per test 256 megabytes input ...

  2. Linux下tomcat的catalina.out屏蔽

    修改catalina.sh ,找到下面的位置: if [ -z "$CATALINA_OUT" ] ; then#CATALINA_OUT="$CATALINA_BASE ...

  3. 洛谷 P1608 路径统计

    P1608 路径统计 题目描述 “RP餐厅”的员工素质就是不一般,在齐刷刷的算出同一个电话号码之后,就准备让HZH,TZY去送快餐了,他们将自己居住的城市画了一张地图,已知在他们的地图上,有N个地方, ...

  4. SHARP 加粉

    http://v.ku6.com/show/7ufwm7pqfF8D_f13IdCaag...html

  5. AutoCAD如何设置线宽

    一般要求粗实线粗实线0.4,细实线0.2mm. 1 先打开图层特性管理器,新建一个图层,专门放粗实线(我起名叫"我的粗实线",颜色设置为紫色,线宽为0.4mm),此前的乱七八糟的图 ...

  6. netty4与protocol buffer结合简易教程

    各项目之间通常使用二进制进行通讯,占用带宽小.处理速度快~ 感谢netty作者Trustin Lee.让netty天生支持protocol buffer. 本实例使用netty4+protobuf-2 ...

  7. appium desktop

    Appium-desktop 下载地址:https://github.com/appium/appium-desktop/releases 一般功能 这些能力跨越多个驱动因素. 仅限Android 这 ...

  8. 怎样把引用的jar包和本项目一起导出成jar文件

    之所以要导出Runnable JAR.是由于我们希望将引用到的Jar包与本项目一起进行导出,所以不要选Jar file 选File/Export...然后Java/Runnable JAR file, ...

  9. nginx-Proxy Cache缓存

      1.创建目录 mkdir /export/Data/nginx_proxy_cache mkdir /export/Data/nginx_proxy_temp   2.修改http,打开缓存 文件 ...

  10. Java中的字节输入出流和字符输入输出流

    Java中的字节输入出流和字符输入输出流 以下哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream D In ...