手机密码有多少种?
2014-01-14高延庆
高延庆
如今智能手机越来越普及,几乎人手一部,它已经不仅仅是一个通信工具,而是成为我们生活、工作和学习中不可分割的一部分。有人说现代社会人出门必带三样东西:手机、钱包和钥匙,据说很多人上厕所也要带上手机,由此可见手机的魔力非同一般了。
作为我们的亲密伙伴,手机里面存放了大量的私密信息,这些信息如果无意中流失出去,岂不是很尴尬?更坏的情况是,如果手机里面有一些账户信息,那岂不是很容易被坏人利用?不过幸好我们可以设定密码,这样即使无意中手机落入坏人手中也不怕隐私泄露。
那么手机密码安全性如何?是不是很容易被破解?我们的手机一共可以设置多少种密码呢?
一个基础的排列组合公式
先给大家普及一点基础的数学知识吧。从1、2、3、4这4个数中取3个数排成一列,一共能得到几种不同的排列?答案是24种。如果用列举法,答案就是:
123,132,213,231,312,321,124,142,214,241,412,421,234,243,324,342,423,432,134,143,314,341,413,431
那么这个如何用快捷的方法计算出来呢?过程是这样的:假设最终得到的三个数排列是ABC,A、B、C必须从1、2、3、4中取,A有几种可能呢?很显然A可以取1、2、3、4中的任意值,因此有4种可能。那么B有几种可能呢?假设之前A取的值为2,那么B只能从1、3、4中取,因此有3种取法。依次类推C有2种取法,所以ABC一共有4*3*2=24种可能。其实在数学中这是个基础的排列问题,可以用A(4,3)表示,由此我们可以推导出公式:
A(n,m)=n(n-1)(n-2)…(n-m+1)
表示从n个元素中取m个排成一列所能组成的不同排列数。
Iphone有10000种密码
言归正传,现在我们来分析下智能手机到底有多少种密码组合。目前市场上主要流行两种手机,一种是ios系统的,主要就是iPhone,还有一种是Android系统的。
先看看大家最关注的iPhone吧。大家都知道iPhone密码固定为四位,每一位可以取0到9这10个数字中的任一个,那么总的排列数为10*10*10*10=10000。这个密码相对于计算机来说还是太简单了,不过若是防御手工破解的话还是绰绰有余的。不过话又说回来了,如果设定密码的数字不能重复,那又有多少种呢,答案是A(10,4)=5040,差不多是上面的一半。看来乔帮主这样设定密码还是有道理的。
Android有389112种图案密码
现在我们来分析下Android。Android系统允许用户设置数字密码和图案密码。数字密码最少4位最多不超过16位,则所有可能的密码种类数为:
这数字大约是iPhone密码数的10000亿倍,真是秒杀iPhone啊。
然而,这个仍然不是Android引以为傲的。Android的经典锁屏密码乃是图案密码,如下图所示。这种密码相对前面的数字密码是不是很高大上?据说当年美国FBI想要从一个嫌疑犯的手机上获得数据信息,技术人员花了一周时间仍是解不开图案锁屏界面。接下来我们就分析一下这种密码有多少种组合。
这种密码是3*3的点阵中的一条路径,这条路径最少连接4个点,最多连接9个点。因而,符合要求的路径数最多可以达到A(9,4)+A(9,5)+A(9,6)+ A(9,7)+A(9,8)+A(9,9)=985824种。这差不多是iPhone密码数的98倍。不过,这只是Android密码数的一个上限,Android设置密码时有一定的限制,主要是不能跳过路径中间必须经过的点。
为了方便分析,我们用九宫格的方式来表示上述图案,把点阵中的九个点分别用数字1到9编号。
按照上述规则,2178、1987都是不合法的,但15987则是可行的。看起来问题越来越复杂了,强大的组合数学在这里都派不上用场了。怎么办呢?还好有计算机,我们可以编写一个小程序来达到目的:
首先生成所有985824种没有限制的排列:
再记下不能直接连接的点对:
然后我们删除集合A中存在非法点对的元素:
以<1,3>为例,在集合A的所有元素中,我们删除所有形如*13*2*的元素,其中*代表零个或多个数字;
对于点对<9,1>,我们删除所有形如*91*5*的元素……
依次类推,集合A中剩下的元素将都是合法的,这样我们就得到了Android图案密码的数目,到底是多少呢?一共有389112种,差不多是总数的三分之一。
如果一个人试一种密码需要一秒钟的话,大概需要108个小时,差不多四天半。相信没有哪个人坚持四天四夜不眠不休地试密码吧?
通过上面的分析,大家是不是对自己的智能手机密码的安全性有了一定的了解?你们一定有人会问,如果我把密码忘了怎么办?这里我教你一个小窍门,你可以申请个账户,当忘记密码时登录账户重置,很多手机运营商都提供了这个服务。
(责任编辑/冷林蔚)