昨天准备给自己的应用发布一个新版本,在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 然后在执行,否则会报错的。

<ignore_js_op>

AndroidKeystoreBrute_vl.05.zip

26.06 KB, 下载次数: 27, 下载积分: e币 -5 元

不用FQ了

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

Android之找回打包key密码的方法的更多相关文章

  1. 三种找回 linux root密码的方法

    找回 linux root密码的三种方法 第1种方法: 1.在系统进入单用户状态,直接用passwd root去更改2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法 ...

  2. linux下修改root密码以及找回密码的方法

    以root身份登陆,执行: # passwd 用户名 (修改密码) # useradd 用户名 (添加用户) 具体示例如下:[root@bogon ~]# passwd root Changing p ...

  3. html5 如何打包成apk,将H5封装成android应用APK文件的几种方法

    直接使用编程软件提供的方法: 1.需要下载安装MyEclipse2014,Android SDK,eclipse(需配置Android开发环境) Java和Android环境安装与配置. 2.打开My ...

  4. 第07讲- Android项目的打包apk

    第07讲Android项目的打包apk 方法一:在工作目录bin文件夹下有一个与项目同名的apk文件 (最懒惰的方式,不推荐,不安全,不利于版本更新,只有在开发模式时使用) 方法二:使用key方式 签 ...

  5. 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

    背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...

  6. 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)

    申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)具体步骤如下:                                                     ...

  7. 【Android】Android 手机忘记锁屏密码的解决办法

    对于忘记Android锁屏密码的筒子们,除重新刷包或者wipe data外,还可用adb来删除密码: 方法很简单 1.手机连接电脑,不要打开数据连接,在充电模式下进行. 2.在电脑上,解压adb.zi ...

  8. 1.9 Android程序签名打包

    本节引言: 本节给大家介绍的是如何将我们的程序打包成Apk文件,并且为我们的Apk签名! 1.什么是签名,有什么用: Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到 ...

  9. android studio学习----打包

    Gradle打包APP签名 默认情况下,debug被配置成使用一个debug keystory.debug keystory使用了默认的密码和默认key及默认的key密码.debug构建类型会自动使用 ...

随机推荐

  1. 更换网页tab标题图标

    在首页HTML文件中,加入link命令,<link>是放在<head>与</head>之间 例如下面这样: <HEAD><link rel = & ...

  2. 032 Spark容错特性

    1.spark容错主要分为两个方面 其一是集群 再者为spark的应用程序. 2.Driver 重要补充: driver宕机: Spark On Yarn:总之,要重启 client:只能重启job ...

  3. SpringMVC框架06——文件上传与下载

    1.文件上传 Spring MVC框架的文件上传是基于commons-fileupload组件的文件上传,只不过Spring MVC框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现. ...

  4. 使用HttpServlet简单实例

    使用HttpServlet简单实例 package com.kettas.servlet ; import javax.servlet.* ; import javax.servlet.http.* ...

  5. 8.4 正睿暑期集训营 Day1

    目录 2018.8.4 正睿暑期集训营 Day1 A 数对子 B 逆序对 C 盖房子 考试代码 A B C 2018.8.4 正睿暑期集训营 Day1 时间:4.5h(实际) 期望得分:30+50+3 ...

  6. js跨域请求(jsonp)

    jsonp是跨域请求的手段之一. jsonp的原理: 先来看看下面这段代码 <!DOCTYPE html> <html lang="en"> <hea ...

  7. R基础学习(二)-- 连接sqlserver

    测试环境:win10+RStudio 三个步骤:(1)创建ODBC数据源:(2)install.packages('RODBC') :(3)编写连接测试脚本 (1)创建ODBC数据源 控制面板-> ...

  8. Gym 100646 You’ll be Working on the Railroad dfs

    You'll be Working on the Railroad 题目连接: http://codeforces.com/gym/100646/attachments Description Con ...

  9. spring-boot 速成(3) actuator

    actuator 通过暴露一系列的endpoints可以让开发者快速了解spring boot的各项运行指标,比如:线程数,jvm剩余内存等一系列参数. 启用方法很简单,参考下面: dependenc ...

  10. HDU 4453 Looploop (伸展树splay tree)

    Looploop Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...