keystore找回密码

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

时间: 2024-08-02 01:48:47

keystore找回密码的相关文章

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

转自:http://blog.k-res.net/archives/1671.html 二月 5, 2014  |  Posted by K-Res 之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的.其实Android应用开发接入各种SDK时会发现,有很多SDK是需

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

之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的.其实Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指纹hash来识别的(百度地图SDK.Facebook SDK等等-),这样如果使用默认自动生成的de

【毕设】班级管理系统——找回密码模块

[模块介绍] 首先检测用户是否在登录状态下,若用户在登录状态下,则跳过用户名检测环节,直接进入随机密保验证和修改密码环节,修改成功后,则注销原用户登录.若用户之前并未登陆,则在随机密保验证和修改密码环节之前得先判断段所要修改的用户名是否存在.只有存在后才能进入下一环节.本设计思路来源腾讯QQ密码按密保问题修改.图5.3(a),图5.3(b)和图5.3(c)分别显示用户名检测,随机密保验证和修改密码环节的相关界面. [界面设计] [程序流程图] [核心代码] 相关参数说明: private Lis

PHP会员找回密码功能实现实例介绍

设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名时,点击登录页面的“找回密码”超链接,打开表单,并输入注册用的E-MAIL邮箱,提交. 3.系统通过该邮箱,从数据库中查找到该用户信息,并更新该用户的密码为一个临时密码(比如:12345678). 4.系统借助Jmail功能把该用户的信息发送到该用户的邮箱中(内容包括:用户名.临时密码.提醒用户及时修改临时密码的提示语). 5.用户用临时密码即可登录. HTML 我们在找回密码的页面上放置

用户邮件找回密码实现

改天我在写详细注释吧,代码先贴出来,注释很明白了,应该无需多言. 1 Controller代码: 2 public ActionResult ForgotPassword() 3 { 4 return View(); 5 } 6 [ActionName("ForgotPassword"),HttpPost] 7 public ActionResult ForgotPasswordPost(ForgotPasswordModel model) 8 { 9 if (ModelState.I

mysql修改密码、找回密码

已root用户为例 一.修改密码 方法一: 在mysql系统外,使用mysqladmin # mysqladmin -u root -p password "test123" Enter password: [输入原来的密码] 方法二: 通过登录mysql系统, # mysql -uroot -p Enter password: [输入原来的密码] mysql>use mysql; mysql> update user set password=passworD("

ECSHOP 找回密码无法使用

症状:使用ecshop 找回密码并重置新密码后无法使用新密码登陆 分析结果: ecshop密码原则上使用一次性md5加密,当注册新用户成功后观察数据库密码字段,确实为md5值 而当用户第一次登陆,ecshop做了一次非常牛逼的动作,判断用户数据行是否存在ec_salt, 如果不存在则生成一个ec_salt并重写密码! 就是说,你注册时写入数据库的密码和登陆后的密码值发生了改变.以后再次登陆时,使用ec_salt值与post的密码进行二次md5加密进行验证 牛逼之处在于,当你使用密码找回时,其只是

找回密码(一)【实际项目】

(一)第一个jsp页面 页面效果 代码 1 <div class="wjmm"><a href="/forgot_password.jspx" class="fg_pw" >忘记密码</a></div></div> (二)跳转到controller方法 1 @RequestMapping( value = "/forgot_password.jspx" ) 2 pub

登陆页面,找回密码,注册页面(三个view的切换)

// //  AppDelegate.m //  UI_Lesson2_homework // //  Created by 李洪鹏 on 15/7/1. //  Copyright (c) 2015年 李洪鹏. All rights reserved. // #import "AppDelegate.h" @interface AppDelegate () @property (nonatomic, copy)NSString *userName;   //用户名 @property