●●●
短信验证码浅析
什么地方会用到短信验证码
最常见的是各种产品的注册流程。短信验证码可降低非法注册、重复注册率,同时真实的手机号信息也利于产品运营。除注册外,登录,找回密码,开户,支付、更换设备等流程中也经常需要短信验证码来验证身份。
短信验证码的作用
1.产品角度考虑:验证码的本质是为了区分用户是计算机还是人,防止恶意破解密码。
2.用户角度考虑:短信验证码更方便快捷,降低繁琐密码的记忆成本与输入成本。
短信验证码的组成
目前的短信验证码一般为4位或6位数字。为什么是4或6?
安全角度考虑
4位数,0000到9999,需要10000次尝试,总共需要500秒;
6位数,000000到999999,需要1000000次尝试,总共需要50000秒,10个多小时时间。
加上验证码的有效时间限制(一般多为5分钟)及输入次数有效性的限制,可以说是比较安全了。
方便记忆角度考虑
短时记忆 xx+xx或xxx+xxx与xx+xxx或xxx+xx比较的话,xx+xx或xxx+xxx容易记忆。所以4位或6位的组合更方便记忆。
短信验证码的成本
一般是在3-7分/条,单看一条觉得没什么,结合用户量折算下来成本就不小了。所以在设计过程中也要考虑这个因素,避免不必要的浪费。
●●●
如何设计短信验证码
设计中需要考虑的核心要素:准确、高效、安全。
页面
页面形式
目前大多数平台验证码输入为独立页面。其优点是信息可以高度聚焦,提高准确率。其次作为交互组件,可在平台的不同流程中灵活调用,节省设计开发成本。
输入框细节交互:
* 默认位数提醒,如——————;
* 考虑禁掉复制粘贴,原因是出于安全性考虑,防止恶意攻击(目前各家平台并没有都设置禁掉复制粘贴);
* 若验证码为独立页面,可在输入完成后自动开启校验,减少点击。
倒计时交互:
* 小于XX秒时,显示倒计时秒数(一般多为60秒)。大于等于XX秒时,切换为“重新发送”;
* 点击“重新发送”同时,可清空输入框,减少不必要点击;
* “重新发送”按钮需添加验证码条数或次数等限制判断;
* 超过条数或次数上限,重新发送按钮可考虑变为置灰不可点。
键盘:调用数字键盘。(小细节容易被忽略)
验证码获取次数及条数判断:
一般出于安全及成本考虑,需在执行获取验证码命令时添加条数、次数等相关限制判断,具体校验规则依据产品需求而定,判断节点可规范化考虑。主要两种场景:
* 场景一:在进入验证码页面同时自动发送验证码的场景下,需在触发进入验证码页面的按钮处添加限制判断。
* 场景二:输入验证码页面,手动获取验证码按钮需添加限制判断。
验证码页面返回拦截:
出于成本考虑,一些APP还添加了拦截弹窗,验证码页面点击返回,弹窗提示:“验证码短信可能略有延迟,确定返回并重新开始?”。
验证码校验loading状态:loading时可禁掉页面点击(除返回),防误操作或爆力点击。
短信本身
推荐结构:【平台名称】111111(动态验证码),说明文案说明文案说明文案。
第一时间可以get到数字验证码,方便输入。
短信验证码为什么不支持复制粘贴
主要是出于安全考虑,降低被恶意攻击破解的风险。细心的同学可以发现支付宝的短信验证码就是禁掉了复制粘贴功能。不过一些安卓手机已经可以将短信验证码自动复制粘贴,甚至还有验证码管理小工具,可以将这种短期失效的信息进行统一删除管理,用户感觉还是很方便的。其实如果真的解决了安全问题,如此方便岂不是更好。
●●●
反过来思考
短信验证码的本质其实就是身份验证,弱身份绑定及便捷性让其大受欢迎,同时网络实名制及手机号实名制的推行也起到了一定助力作用。从身份验证角度出发,目前也诞生了一些更安全便捷的方式:人脸验证、指纹验证、扫码认证、推送认证、声音暗号等。所以验证身份的方法也不止局限于短信验证码一种,可以结合产品、技术提供更多的解决方案。
想要快捷又方便地实现产品的短信功能,可以点击【阅读原文】,试试网易云信的验证码短信,既支持自己生成验证码,也提供代生成验证码功能,不同的方式,不同的满足!还有到达率99.9%的语音验证码和国际短信功能!
↓↓↓