智能手机的密码总共有多少种

iPhone 有10000种密码

iPhone 的密码是一个四位数,从 0000 到 9999 都有可能成为 iPhone 的密码,总的可能性有 10000 种。Android 系统则独具一格,它的“密码”是 3 × 3 的点阵中的一条路径,这条路径最少连接四个点,最多连接九个点。因而,符合要求的路径数最多可以达到 A(9, 4) + A(9, 5) + A(9, 6) + A(9, 7) + A(9, 8) + A(9, 9) = 985 824 种,看上去远远超过了 iPhone 的密码数。不过,这只是 Android 密码数的一个上限。Android 设置密码时有不少限制,这给死理性派的分析带来了巨大的障碍。仔细研究后,死理性派编辑发现——这恐怕是实际生活中最复杂的数学题之一了。

Android 有389 112 种密码

Android 的密码是 3 × 3 点阵中的一条路径,这条路径可以交叉,可以“走日字”,几乎是无所不能(只要不经过重复点),但却有一个例外:路径不允许跳过途中必须要经过的点。例如, 如果从左上角的点连接到右上角的点,中间的那个点会被自动地加进路径里。但麻烦就麻烦在,这个规则本身也有一个值得注意的地方:如果中间的点是之前已经用过的,那么这个点就可以被跳过去了。

/gkimage/e8/kt/3e/e8kt3e.png

我们不妨把点阵中的九个点分别用数字 1 到 9 编号。按照上述规则,4136、4192 都是不合法的,但 24136、654192 则都是可行的。死理性派这下苦恼了,似乎五花八门的组合数学模型在这里都派不上用场。怎么办呢?别急,我们还有强大的计算机帮忙。下面,有请编辑最爱的数学软件 Mathematica 登场。


首先,让我们生成所有 985 824 种没有限制的排列组合:


再记下不能直接连接的点对:

invalidSegments=[(1,3),(3,1),(4,6),(6,4),(7,9),(9,7),(1,7),(7,1),(2,8),(8,2),(3,9),(9,3),(1,9),(9,1),(3,7),(7,3)]</span>
由此生成的不合法规则:

def judge(j):
	for i in range(len(invalidSegments)):
		if str(j).find(''.join(map(str,invalidSegments[i]))) > -1:
			return 1
	return 0
	
		
#a=open('data.log','wb')
for count in range(4,5):
	for i in itertools.permutations(range(1,10),count):
		str_pass=''.join(str(i)[1:len(str(i))-1].split(', '))
		if judge(str_pass)==0:
			num += 1
			#a.write(str_pass+'----->'+str(num))
			#a.write("\t")
			print str_pass,'----->',num
#a.close()

这样,我们就得到了一个准确的数字。


但是,为何统计出来的数字和别人的不一样呢?抓狂

(包含 4、5、6、7、8、9 个点的合法路径数分别为 1624、7152、26016、72912、140704、140704

参见http://www.guokr.com/article/49408/


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能手机的三泄密方式全文共4页,当前为第1页。智能手机的三泄密方式全文共4页,当前为第1页。智能手机的三泄密方式 智能手机的三泄密方式全文共4页,当前为第1页。 智能手机的三泄密方式全文共4页,当前为第1页。 "棱镜门事件"的主角斯诺登在接受英国媒体采访时披露,美国国家安全局能在iPhone关机的情况下监听用户通话,从中获取相关信息。这一消息让iPhone手机泄密成为备受关注的焦点话题。其实,所有智能手机都存在安全隐患和被动泄密的问题。那么,如何防止包括iPhone在内的智能机被监听并泄密?这要先了解智能手机是如何泄密的。 智能手机的安全隐患 智能手机在给人们生活和工作带来便利的同时,也埋下了安全隐患,主要是用户的信息安全受到严重威胁。其一,用户的信息会无端地被删改、丢失或不能正常显示。其二,手机常出现非法自启动、私自发短信、恶意扣费、私自联网等现象。其三,手机中的所有信息,包括银行卡密码、网站账号、通讯录、上网记录、邮件、聊天视频、私密照片、重要文件、硬件配置信息(如手机串号和无线网卡地址等)遭遇被窃取的风险。最后,手机可能被定位和远程控制,使用户的通话被监听、通信被干扰、行动被监控。甚至手机还被暗中作为移动窃听器启动,使用户的许多重要信息在不知不觉间被传出去,造成严重的被动泄密事件,带来难以弥补的安全损失。 三泄密方式 为何会出现被动泄密的情况?与普通手机相比,智能手机拥有独立的操作系统和运行空间,用户可自行安装和卸载应用软件,并通过移动通信网络实现无线网络接入,正是这一有别于普通手机的便捷服务,成为智能机泄密的渠道。 其一,第三方可通过专门的设备截获智能手机的通话和收发智能手机的三泄密方式全文共4页,当前为第2页。智能手机的三泄密方式全文共4页,当前为第2页。信息的内容。智能手机使用开放的电子通信系统或互联网联系,通常只要有相应的无线电接收设施或网络设备,就能截获用户通话和上网收发的信息内容。另外,手机的GPS功能,使其能"自报家门和地址"。目前很多国家的情报部门或安全机构就是通过授权,用这方式监听智能手机的通话和截获信息,来搜寻、跟踪和定位特定用户。不过这方法专业性较强,需要动用很多资源,一般的组织或个人很难实施。 智能手机的三泄密方式全文共4页,当前为第2页。 智能手机的三泄密方式全文共4页,当前为第2页。 其二,利用手机病毒和木马暗中破坏或窃取智能手机用户信息。智能手机用户经常会收到一些来历不明的广告、邮件,有时还会搜索到一些应用软件或各二维码,一些非法的邮件和二维码背后隐藏有病毒和木马,用户一旦点击安装,或见"码"就刷的话,会将病毒激活并在手机上安装了木马,导致手机中毒,信息被破坏,另外还有一些木马会潜伏在手机里伺机启动,以不易察觉的方式监听用户通话,读取通话内容以及手机中的网络交易、投资等数据,同时启动实时上传程序,将这些信息上传至不法分子搭建的服务器上,造成用户敏感信息外泄,甚至带来无法挽回的经济损失。 其三,一些机构在智能手机中预设软件,或通过远程植入软件,实时窃取用户信息。或在盗取用户智能手机后,人工将窃听软件或黑客软件安装在手机里;也有可能通过将这些软件夹带到一些应用软件中,当用户安装软件时一同将它们安装到手机上,而这一切用户并不知情,也不会有任何提示显现。还有一更专业和隐蔽的做法是通过互联网或基带在智能手机中实施软件远程植入。通过这些方法,全面控制智能手机,在需要时锁定用户,进行后台操纵实时监听用户通话,或通过网络将通话内容上传到智能手机的三泄密方式全文共4页,当前为第3页。智能手机的三泄密方式全文共4页,当前为第3页。事先绑定的邮箱中供他人随时调取。另外,被植入这窃听软件的智能手机还能被远程启动和操作,例如,通过接收指令将手机麦克风激活,从而成为一窃听器,窃听用户的谈话内容,这一过程无论手机处于待机还是关机状态(加电状态)都能进行,而且丝毫不会被用户察觉。 智能手机的三泄密方式全文共4页,当前为第3页。 智能手机的三泄密方式全文共4页,当前为第3页。 最后,通过未加密的恶意WiFi连接,以设伏方式获取用户智能手机中的信息。如今,越来越多的公共场所都提供免费的无线上网服务,很多用户外出时习惯不假思索地用手机连接未加密的WiFi网络,上网浏览或收发信息。如果手机自动搜索并连接到了黑客恶意架设的WiFi上,从而使智能手机的一些重要数据被控制WiFi设备的黑客电脑截获,手机中未经加密处理的用户名和账号密码以及其他私密信息等就会在不知不觉间泄露出去。 应对泄密的措施 智能手机泄密大多是通过后台操作进行的,因此这安全隐患通常难以避免,用户只能最大限度地减少这一情况的发生。 首先,为抵御和监视病毒与木马,用户应为智能手机安装一些从正规网站下载的专业防火墙和防病毒软件,定期
以下是一个简单的智能门禁系统项目,使用手机输入密码进行验证的代码: ```python # 导入所需库 import random # 创建密码列表 passwords = ['123456', '111111', '666666', '888888', '000000'] # 创建门禁系统类 class AccessControlSystem: # 初始化门禁系统 def __init__(self): self.password = random.choice(passwords) # 随机选取一个密码 self.is_locked = True # 默认门禁系统为锁定状态 # 解锁门禁系统 def unlock(self, password): if password == self.password: self.is_locked = False print('门禁系统已解锁') else: print('密码错误,请重试') # 创建手机类 class Phone: # 初始化手机 def __init__(self): self.is_unlocked = False # 默认手机为锁定状态 # 解锁手机 def unlock(self, password): if password == self.get_password(): self.is_unlocked = True print('手机已解锁') else: print('密码错误,请重试') # 获取门禁系统的密码 def get_password(self): # 这里直接返回了一个密码,实际上应该是从远程服务器或者数据库中获取密码 return random.choice(passwords) # 测试代码 acs = AccessControlSystem() phone = Phone() # 输入错误的密码,解锁门禁系统失败 acs.unlock('123') # 输入门禁系统的密码,解锁门禁系统成功 acs.unlock(acs.password) # 输入错误的密码,解锁手机失败 phone.unlock('123') # 输入门禁系统的密码,解锁手机成功 phone.unlock(acs.password) ``` 以上代码是一个简单的智能门禁系统项目,使用手机输入密码进行验证。在实际开发中,还需要考虑更加复杂的情况,例如多个用户、多个门禁系统、密码加密等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值