智能手机如何万能解锁图案?
随着智能机的普及很多用户利用锁屏软件来保护自己的手机隐私。但手机锁屏与电脑锁屏相仿也有两种,一种是切断屏幕电源┅种是利用软件快速智能锁屏。
锁屏的目的一般有三个:保护自己的电脑或手机隐私、防止误操作手机、在不关闭系统软件的情况下節省电量
但是,有时候不小心忘记锁屏图案真的很烦下面,本文就将为大家讲解手机万能解锁图案方法手机锁屏图案忘了也不怕。
招数一:当手机图案锁屏输入不正确而无法进入桌面时首先得冷静下来想想最有可能的万能解锁图案密码。通常如果图案密码是洎己设置的一般情况下都会有印象,仔细想想或许真的能够解开密码。
招数二:另外我们可以通过在Recovery模式下通过消除用户数据来使圖案锁屏功能失效操作方法很简单,只需要在完全关闭手机状态下按相关组合键(不同手机进入Recovery模式的方式不同)进入Recovery模式,然后选择“消除用户数据”项即可
招数三:利用软件来消除锁屏图案。如果幸运的话当手机设置中的“USB调试”开关已开启时,我们就可以通过掱机管理类软件将锁屏图案给消除掉此时只需要将手机通过USB数据线与电脑相连,然后打开电脑中的手机管理软件如“腾讯手机管家”、“刷机精灵”、“豌豆夹”等,此时就可以直接对手机锁屏图案进行清除操作
招数四:通常刷机或恢复原厂固件消除锁屏图案。该方法可以说是一种万能或终极方法当其它方法均不可行时,采用重新刷机将是唯一可行的方法由于手机类型众多,故不同手机的刷机方法大家可直接上网搜索相关资料。
以上就是关于智能手机如何万能解锁图案手机锁屏图案忘了也不怕的介绍,希望对您有所帮助!
图案万能解锁图案是现今智能手機比较常见的万能解锁图案方式用户通过在3×3的点阵中绘制图案来设置密码,万能解锁图案时也通过实时绘制图案来实现万能解锁图案验证。例如下图就是几个万能解锁图案的图案示例:
下文中笔者通过编程对图案万能解锁图案的情况进行探究,主要计算一些统计信息首先给出图案万能解锁图案中对于图案绘制的规则,然后说明为实现相关计算而进行编程的思路最后根据程序输出结果说明一些统計信息。
对于目前图案万能解锁图案的实现在绘制万能解锁图案图案过程中,需要遵循如下的规则:
(1) 绘制的图案是一条经过若干个点的折线轨迹至少要经过4个点。
(2) 点阵中每个点只能经过1次轨迹中也一定没有回路。
(3) 点阵中任意两点均可以通过一条边直连,水平的边、豎直的边倾斜的边均合法,如下图所示:
(4) 如果两点之间的边经过了第三个点则只有位于边中部的点已被经过,该边才有效这里为了便于说明,将点阵中的各个点进行编号如下:
以上为图案的绘制规则。
接下来通过编程来对图案万能解锁图案的情况进行分析这里主偠关注一些统计信息,包括:不同密码的种类数、不同图案的种类数以及图案和密码的对应关系
为了便于编程实现,首先对边进行分类根据上文中对于绘图规则的描述,这里将绘图中用到的边划分为如下的4类:
(1)直边:连接相邻两个点的水平边和垂直边称为直边在万能解锁图案图案中,可以使用的直边有12条
(2)45度斜边:45度倾斜的连接两个相邻点的边称为45度斜边,在图案中可以使用的45度斜边有8条。
(3)26度斜边:除45度斜边外图案中还可以使用另一种斜边,该边的倾斜度大约为26度在图中,可用的26度斜边也有8条
(4)跳边:连接两个不相邻的点的边稱为跳边,通过跳边连接的两个点中间一定会经过第3个点这个点我们称其为“中介点”,根据上文中的绘图规则只有中介点已经被经過是,跳边才合法在图案中,跳边有8条根据边的倾斜情况,跳边还可以细分为直跳边和斜跳边
下图描述了4种类型的边的情况:
在Java代碼中,我们用整型常量代表每一种边的类型同时用邻接矩阵的方式表示图中任意两点的边,代码如下:
矩阵中第i行第j列记录了点i到点j之間的边的类型由于数组下标从0开始,而我们的编号为1-9,因此在邻接矩阵中有冗余的第0行和第0列编号为0的点不存在,因此和其他点的边也鈈存在记为NONE,另外同一个点之间也没有边,因此第i行第i列的元素总是NONE
根据前文中对于跳边的描述,只有中介点被经过时跳边才可鼡,我们需要在代码中将这些规则记录下来这里采用Map容器来存储,其中key值为跳边的端点value值为中介点,为了便于表示这里将key值转换为芓符串,格式为"v1#v2"其中v1和v2是端点的编号,代码实现如下:
·图和密码的表示和存储
为了便于在程序中存储每一个图形和每一个密码这里將图形和密码分别转换为int整形和字符串来存储。
对于图形由于已经给定了不同的点,因此不同的图形主要根据不同的边来区分根据上攵的分析,不同的边的个数有28条这里没有把跳边记录在内,对于一个图形而言每一个跳边都可由2个非跳边来取代,这里将每一条边进荇编号对于某一个图形,当其包含编号为i的边是就将int整数中的第i位二进制位置为1,这样就将一个图像转换为一个int数字来存储相关代碼如下:
对于密码,则可以对应一组点的序列根据这个序列将对应点顺次用边连接就唯一地代表一个密码序列,因此我们用字符串来表礻一个密码序列需要注意的是,图形和密码序列之间并不是一一对应的关系在某些情况下,不同的密码序列可以得到相同的图形比較容易想到的情况是,对于一个给定的图形交换首尾起点就可以得到2个不同的密码序列,如下图:
在代码中我们用Map来图形和密码的映射关系,如下:
最后通过基于深度优先搜索的方式遍历的方式遍历所有的密码序列对上文中的存储图形和密码的map进行填充,代码如下:
這里需要关注的是:首先在遍历过程中遇到跳边时需要判定中介点是否已经被访问,如果已被访问则此时跳边可用,继续向下一层搜索否则跳边不可用,另外笔者在编写代码过程中,加入了check函数用于判定当前密码序列是否合法,通过修改check函数的实现我们可以从鈈同的角度来获取响应的统计信息。
最后笔者给出一些通过运行程序得到的一些统计信息,通过修改check函数的实现可以从不同的角度进荇数据统计,以下只是笔者自己感兴趣的方面
首先统计一下所有合法的密码和图形的种类数,通过统计代码中的relation的不同的key值可以得到不哃的图案的种类数而所有value值中的list的size值的总和就是不同的密码数,通过程序运行可以得到:不同的密码序列的数目是389112而不同的图案的数目是285612。
·关于图案和密码的对应关系
前文中已经说明对于某些图案,可以有多个密码序列和其对应比较容易想到的是,对于简单的密碼只要将其反序就是一个新的密码,但是这个新密码和反序前的密码绘制出的图案是同一个图案那么对与285612个图案中,单个图案最多可鉯和多少个不同的密码序列对应这个问题可以通过统计relation总的所有value值的size大小来得到答案。通过运行程序可以发现,这个问题的答案是4即一个图案最多可以映射到4个不同的密码序列。
令笔者感到惊讶的是所有可以映射到4个密码序列的图案中,有一些图案结构非常简单唎如下面的例子:
通过程序统计,可以知道:在285612个不同的图案中:有195512个图案只能映射到1种密码序列;78008个图案可以映射到2种密码序列;10792个图案可以映射到3种密码序列;1304种图案可以映射到4种密码序列
·基于边的类型的统计信息
根据使用边的类型,可以得到如下的统计信息
可鉯看到使用的边的种类越多,密码和图案的变化数目也越多另外还可以看到,当不使用跳边时密码数和图案数一定是2倍关系而使用了跳边后,这个数量关系将不再保证这说明引入跳边会加大密码的复杂度。这一点还会在下文中体现
另外可以看到,即使不使用直边吔可以构造出5576种不同的密码,这里给出几个样例如下:
但是斜边的绘制难度比较大特别是26度的斜边,像笔者手指比较粗手机屏幕有又仳较小的情况,使用起来不是很方便^-^
·基于密码长度的统计信息
接下来统计不同长度的密码的情况由于绘图规则中的定义,一个合法的密码必须至少包含4个点因此我们统计4-9个点的密码的情况,结果如下:
最后再单独分析一下跳边的情况通过前文的分析也可以知道,当密码序列中包含跳边时密码的复杂程度将会大大提高,对于不包含跳边的密码序列可以很直观地根据图形推测出密码的序列,同时这樣的图形对应的密码序列一定至少有2种下面的几个样例:
以上的例子都可以直接根据图形来推算出对应的密码序列。但是当密码中包含跳边时生成的图案的复杂度将会大大提升,根据图形推测密码序列的难度也响应增大因为图形中将包含更多的“岔路”和“思路”,進而密码的安全性也在一定程度上可以提高看下面的几个例子:
这里比较值得关注的是图形中的“孤点”,所谓的“孤点”就是在图形Φ只和1条边相连的点这里在判定孤点时不计入跳边,因为每一条跳边都可以转换为2条非跳边对于上面的样例第1个图形中的点1、点6和点8昰孤点,第3个图形中的点7和点9也是孤点而最后一个图形中,只有点9是孤点
对于不包含跳边的密码序列,对应的图形一定只有2个孤点僦是起点和终点,而对于包含跳边的密码序列孤点的个数则不一定为2个,因此在根据图形确定密码序列时确定起点和终点也有一定的難度,密码也就更安全一些通过程序计算,我们可以知道所有389112个密码序列种包含跳边的密码共有249232个,图形则有223804个通过统计每一个图案孤点的个数,可以发现:在所有包含跳边的密码对应的图像中包含最多孤点的图案包含的孤点个数为4。在223804个图案中有52168个图案有1个孤點,108616个图案有2个孤点57124个图案有3个孤点,1896个图案有4个孤点对于这四种情况,这里仅列举一个样例如下:
最后需要说明一点:如果密码設置得太复杂,在记忆和万能解锁图案绘图时也会很不方便因此,根据自己的实际需求设置合适的密码即可