昨天准备给自己的应用发布一个新版本,在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. poj_2524_Ubiquitous Religions_201407211506

    Ubiquitous Religions Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 23390   Accepted:  ...

  2. Property 'sqlMapClient' is required

    继承SqlMapClientDaoSupport类的类里面添加如下代码 @Resource(name = "sqlMapClient") private SqlMapClient ...

  3. Rust 1.7.0 macro宏的复用 #[macro_use]的使用方法

    Rust 1.7.0 中的宏使用范围包含三种情况: 第一种情况是宏定义在当前文件里.这个文件可能是 crate 默认的 module,也可能是随意的 module 模块. 另外一种情况是宏定义在当前 ...

  4. 实战!利用MSF批量扫描校园网中含有MS17_010漏洞的主机并入侵

    利用ms17_010的永恒之蓝在前些日子火爆了一段时间,校园网中也声称封锁了相应端口.最近在搞MSF的深入学习,于是有了下文. ms17_010扫描工具 msf中的辅助模块含有一个强大的ms17_01 ...

  5. golang中关闭http server

    golange 开启http server 服务之后,怎么关闭呢? ------------------------------------------------------------------ ...

  6. poj3511--A Simple Problem with Integers(线段树求和)

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 60441   ...

  7. UG如何把语言改成中文,UG如何把界面语言改成中文

    1 高级系统设置,高级,新建一个用户变量(变量名为lang,变量值为chs)   2 高级系统设置,高级,环境变量,系统变量中,查看变量名为UGII_LANG的值是否为simpl_chinese,如果 ...

  8. MySQL 中间层 Atlas MySQL

    Atlas MySQL 详细介绍 Atlas是由 Qihoo 360,  Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0. ...

  9. tesnorflow conv deconv,padding

    1.padding test input = tf.placeholder(tf.float32, shape=(1,2, 2,1)) simpleconv=slim.conv2d(input,1,[ ...

  10. kafka 生产者消费者 api接口

    生产者 import java.util.Properties; import kafka.javaapi.producer.Producer; import kafka.producer.Keyed ...