小编因为一些原因修改了工作手机的锁屏密码,当时以为自己能记住。最后发现还是高估了自己的记忆力。
今天打算在手机中找一些资料的时候,突然发现忘了密码。只记得密码是235689这6个数字组成的,所以开始想办法凭借仅存的记忆进行分析。
开始,尝试输入几个以为是正确的密码
结果都是错误的,导致在一定时间内不能再次输入。我就觉得这样随机的验证下去是不行的,又不记得哪些试过哪些没有试过。
然后,用代码输出这6个数字的排列组合
import itertools
numbers = "235689"
passwords = list(itertools.permutations(numbers, 6))
for password in passwords:
print(''.join(password))
执行后产出720行数据,就是有720个结果,好在还是有点记忆力的,把不可能的组合去掉,剩下20+组。
再把已经试过的密码去掉,剩下10+组。最后就在这十几组里面按照最有可能的概率进行尝试。结果是令人满意的,试到第三组成功了。
这里肯定有人说了,你这个是知道密码的数字,更重要的是可以排除一些不可能的情况,那么如果只知道数字,没有办法进一步排除怎么办呢?
这问题我也想过,所以我也把办法给整理一下,供小伙伴参考:
前提条件:
1.手机开启开发者选项,USB调试选项
2.连接过电脑,使用adb 命令
3.adb shell 有root权限
第一步: 当手机锁屏密码忘记的时候,可以使用手机连接电脑并通过adb 识别
这个目录是需要有root权限的,否则提示如下信息
正常的情况应该显示如下:
gatekeeper.password.key 这个文件是模拟器显示的文件名称,在我们的测试手机(真机)中应该为: password.key
rm gatekeeper.password.key
注意上面步骤是数字密码,如果是图案的话就是对应的gesture.key 文件,删除即可