您当前的位置: 首页 > 

我妈问我12306购票时为啥需要图片验证码

蔚1 发布时间:2019-08-25 23:31:01 ,浏览量:1

如何给别人讲清楚图片验证码的原理,通过打比方的方式通俗易懂解释图片验证码的作用及原理。

在这里插入图片描述

登录系统时图片验证码的原理,下面通过打比方的方式给你讲清楚。

在这里插入图片描述

用户要登录系统就好比要进入一个门上上锁的房间,用户名和密码就是要开锁的钥匙,锁子就是系统的安全验证机制。盗贼发明了一项技术,这项技术可以快速地造大量的钥匙,并且能快速地用这些钥匙试开锁子,如果钥匙足够多,且试开锁的速度足够快,盗贼在有限的时间内是可以打开门上的锁的(“暴力”破解密码),怎么去防这些盗贼?

有两个办法:(1)将锁上的钥匙孔形状造的足够复杂(加大密码复杂度),这样盗贼需要造更多的钥匙和试开更多的次数(本文先不讨论);(2)降低盗贼开锁的速度,减少有限时间内开锁的次数。下面说明第二个办法:

在这里插入图片描述

为了降低盗贼开锁的速度,主人在门前拴了一条看门狗(图片验证码安全机制),这只狗有一种特殊的能力,它会随机出一些简单的题,比如问你图片上的数字是多少、1+2=?等类型的问题,并能判断你的答案是否正确,开锁之前必须答对狗出的题,才能试开一次锁,这就在开锁之前增加了一道坎,盗贼的技术还没有那么智能,答对狗出的题还没那么容易,那贼的技术是可以去猜答案的,这又怎么防?

狗也不笨,狗说我的问题只能让你答一次,只要你回答错了,狗就换了另一个新问题(验证码的一次性),一直到你答对才能让你开一次锁。这样,贼的快速试开锁的技术就失效了。

总结:登录场景下图片验证码的作用是【防止单个用户在一定时间内多次提交大量登录请求,频繁触发服务器“用户名密码比对”运算,从而试出正确的用户名和密码,达到暴力破解密码的目的】。推广一下,就可以得出图片验证码的更广泛的作用是【防止单个用户在一定时间内多次提交大量业务请求,频繁触发服务器“有效业务”运算,从而达到消耗或得到系统珍贵的资源和价值的信息】。

验证码的两个关键点:(1)验证码的验证在前,密码和用户名的验证在后;(2)验证码有时效性,如:验证一次后就失效,客户端输入的码和服务端存的码比较一次后,服务端的码就失效了,输错了,下一次重新生成新的码,不给你猜的机会。

验证的功能不光能用在登录的业务场景下可以用到,需要对业务防暴力的场景都可以用,如购票、投票、互联网开放式的信息采集等。

本文首发于 GitChat,未经授权不得转载,转载需与 GitChat 联系。

阅读全文: http://gitbook.cn/gitchat/activity/5d622e0e2c1a845fb5c89db6

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

关注
打赏
1688896170
查看更多评论

蔚1

暂无认证

  • 1浏览

    0关注

    4645博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0523s