提问:安卓九宫格解锁到底安全不?能画出多少图案啊?为什么设置的九宫格总是被别人分分钟破解……
九宫格的安全性还是毋庸置疑的,不过很多朋友在录入图案的时候,要么会嫌麻烦,只利用几个点去画图案,要么是想要提升安全性,却总是画不出复杂的图形。
其实九宫格是有一定的限制条件的,安卓的九宫格密码可以看做是3×3点阵中的一条路径,只要你在画的时候,不经过重复的点,同时不跳过途中必须要经过的点,那么这条路径几乎是无所不能的。举个简单的例子,如果从左上角的点连接到右上角的点,中间的那个点就会被自动加到路径里。不过还有一个有趣的情况是,如果中间的点是之前已经用过的,那么这个点就可以被跳过去。
那么善加利用规则,我们总共能画出多少图案呢?此前已经有代码大神通过代码算出了具体的答案,他们把点阵中的九个点分别用数字1到9编号。然后用Python写了段代码,先计算出所有大于四个数字的所有排列组合,然后从中剃除穿过中间那个数字的组合,剩下的就是符合要求的代码。
规则:
- 1->3组合是不可能存在的,因为它无法避开2;
- 1->9组合也不可能存在,因为它会穿过5。
因此,总共有16个这样的组合。同样按照规则,如果中间的数字已经用过了,是可以穿过的。
比如:
- 2->1->3,2已经用过了,1是可以穿过2与3连接的。
如此筛选以后,就得到了答案—[389112]。也就是说,简简单单的九宫格,可以画出389112个图案。以下是代码,有兴趣的朋友可以自行研究。
然而,既然九宫格有如此多的图案可能,为什么网友的图案密码还会很容易被破解呢?这就是路径利用率的问题,我们身边的大部分安卓用户,在设置九宫格图案时,往往都只会利用四五个点。此前也曾有善用代码的大神解读过这一问题,通过代码,我们就可以很直观的看到,在这389112种可能的密码中,不同长度的密码,其可能性也是不同的。
可以看到,包含4、5、6、7、8、9个点的合法路径数分别为1624、7152、26016、72912、140704、140704。如果你的密码路径连接的点数不到6个的话,可能的密码总数只有1624 + 7152=8776个。一般来说,密码组合的可能性不过万,被破解的几率就很高了,如果你用的是非常常见的密码,那么别人破解起来自然跟玩儿似的,如果你真的不想让你的密码被破解,那么至少也要利用六个点,这样你的九宫格才有一定的安全性可言。
说到这儿,可能有人会问了,那iPhone的密码组合一共有多少可能性呢?我们知道,苹果手机的密码是四位数,也就是说从0000到9999都可能成为iPhone的密码,所以算下来,总的可能性有10000种,相比于九宫格而言,其安全性要差一些,当然,如果你使用九宫格,却只利用6个点以下的点来画图案,那么就可能比iPhone手机的密码还要更容易破解一些。
当然,以上都是假设可以无限尝试的情况下,现在的手机密码输入次数是有限制的,也不至于可以一直尝试,安全性也有了保障。
未经允许不得转载:极客萌动 » Android的九宫格和iOS的数字解锁,谁更强?