论验证码安全性

验证码的作用就是为了强制人机交互,但是几乎所有的图片验证码都存在安全性问题,可以被机器轻易破解。
现在主流的验证码识别技术就是图像识别,如果说我做一个无图验证码是不是就能很大程度上防止机器破解呢?没错,就是canvas验证码。
其实现原理如下:
1、后端把生成的图片验证码转成base64,然后通过人工混淆加密,例如把base64里面的字符A替换成 一 ,然后在把g替换成A,加密和替换规则自己定。
2、前端通过ajax请求得到该加密后的base64,然后通过前后端约定的规则进行解密,此规则是前后端私下定好的,不用网络传输。
3、将解密后的base64放到canvas里面,这样用户就可以看到验证码了
4、将所有处理验证码的js自定义混淆加密
5、canvas原型里面的生成图片的方法删掉防止别人利用控制台将canvas转成图片
6、交给大家自由发挥

这种验证码的好处是:
1、无图机器无法识别
2、就算你得到那段加密后base64,也很难破解,因为你很难从加密后的js中找到base64的加密规则
3、加密混淆规则是自己定的没有规律可寻
4、此验证码灵活多变,就算被破,也能很快找到问题原因进行安全修复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值