茶话验证码
本文属于科普性质,以对话的形式进行,不讲深奥的道理。
用户密码忘记了,登录不了网站怎么办?
给Ta手机发送一条短信验证码,用验证码来设定新密码。
怎么知道用户的手机号码是多少?
用户注册的时候,强制要求填写手机号。
用户乱填一个手机号怎么办?
通过短信来验证。生成一个随机数当作验证码通过短信发到填写的手机号上,让用户把验证码填写回来,如果填写正确,证明手机号不是乱填的。
有时用户收不到验证码短信,或者隔了几分钟才收到,不能让用户一直等。怎么办?
让用户可以点个按钮重新发送验证码。
用户一直点重发,比如1秒点一下重发,浪费短信条数怎么办?
前后端都限制,前端限制60秒后才能重发。后端限制同一个会话,或者同一个手机号60秒内不能发2条。
坏蛋用机器人每60秒“点”一次发送验证码,怎么办?
发短信验证码之前要求用户先填图形验证码。填对了判为人,发送验证码短信,填错了判为机器人,不发验证码短信。
人也会填错图形验证码,怎么办?
如果填错了,再换一张图形验证码给Ta填。
短信验证码有时收不到,60秒后重发,又2条都收到了,不知道以哪条为准,怎么办?
每条验证码产生个序号,序号也出现在短信中,并在界面提示用户输入哪个序号的验证码,这样就知道以哪条为准啦。
有些图形验证码太简单,容易被机器人识别(破解),怎么办?
换复杂的图形验证码,比如 3维数字,汉字带旋转,动画。
(抱歉,一时找不到3D验证码,哪位知道,感谢)
有些图形验证码太复杂,人也很难识别怎么办?
可以用拖动拼图的方式。背后的原理是对滑块的坐标与时间的关系来区分人与机器,具有对人友好、区分效果好等特点。
这么说图形验证码是用来阻止坏蛋的,坏蛋毕竟是少数,但图形验证码却给占多数的好人(好蛋)带来了麻烦。能不能改进一下,平常不要出现图形验证码,只在发现坏蛋的情况下出现?
这个,有难度。那就一开始不出现图形验证码。你接着问。
如何发现坏蛋?
发送了短信验证码,却没填对,或者点了重新发送,就识别为坏蛋,在重新发送时要求“填写”图形验证码。
如果是人真的没有收到短信呢?
只能算Ta倒霉,被误判坏蛋。不过也只是让Ta“填写”图形验证码而已。
“在网络上,你无法知道对方是不是一条狗。”,坏蛋不点重新发送,每次都伪装成第一次发送,怎么办?
通过cookie跟踪Ta,就知道Ta就是刚才发送过一条短信验证码的家伙。
那就每次都先清掉cookie,再访问网页。要知道如果是机器人,访问前清掉cookie轻而易举。
监测客户IP短时间内发送超过一定条数的短信,再想发送就要求填写图形验证码。
(以上对话,纯属虚构,就是为了让你知道短信验证码和图形码证码这些东东)
博主简介:佘焕敏(shé),洋名 Billy Sir。
关注编程基础技术,并致力于研究软件的自动化生成。 对编程规范化、面向对象的极致使用也有着浓厚的兴趣。 同时非常希望能够写程序到65岁。
只有工匠精神,才能把常人觉得单调乏味的代码,当作作品雕刻成艺术品。
重点:这里几乎每一篇文章,都是我认真创作的,凝结了心血。写作从来都不是一件容易的事,对从小语文不好的我而言,是难上加难。而且,你发现没有,文中没有广告。这篇文章介绍了为什么要写这些文章。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南