前沿的基于机器学习建模、多维判断的 滑动验证码,不是简单计算滑块偏移量和按键精灵所能应付的,而图形验证码在当前不断发展的OCR、神经网络面前却越来越容易失守。

图形验证码的原理和识别,在三四年前就已经有深刻的分析,利用机器学习和机器视觉,把验证码的文字和背景分离,去除干扰线,分割字符,扭曲还原,机器就可以做到自动识别。K-Means、SVM(支持向量机)的分类效果就不错,对于扭曲,神经网络方法更是提供了很高的成功率。不过那时候节点多的大型网络,运算是比较慢的。但现在,数据量积累越来越丰富,深度神经网络模型越来越好,计算能力越来越强,最重要的是机器学习算法的从业者越来越多,不管是重叠粘连的字符,或者是物体识别,识别率的提升是自然的。

参考:
常见验证码的弱点与验证码识别
http://blog.csdn.net/problc/article/details/22796971
机器自动识别验证码的原理是怎么样的?
https://www.zhihu.com/question/22479139

据说,有了深度学习,传统字符型验证码被破解的最大概率已经达到98%。

参考:
网易云安全(易盾)推"新一代行为式验证码"
http://news.yesky.com/hotnews/205/115428705.shtml

拖动滑块分两种情况。其余答案说的前端拼接,就不用说了,确实不容易防不住有心人。新的滑块验证码方案,验证码后台针对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果。针对这种方式,单纯分析调用JS是破解无效的。原因如同
@闫先森
所说,深度学习判别策略是黑盒。当然,理论上行为轨迹也可以用深度学习破解,不过还是要积累足够多的训练样本,和足够多的训练时间。

题外话,攻与防技术都是在对抗中不断升级的,无解的验证码还不存在,但防的一方可以不断提升破解成本。应用选择滑块验证,也有部分因素是因为竞争激烈的互联网很看重用户体验,拖动毕竟是趣味性交互且容易完成,而图形验证码既容易被黑客攻破,对用户也并没有那么友好——肉眼识别无趣(可能还很艰难),键盘手动输入更浪费时间,体验比较大。

这里分享网易云安全(易盾)的验证码方案:

易盾验证码抛弃了传统字符型验证码展示-填写字符-比对答案的流程,采用验证码展示-采集用户行为-分析用户行为流程,用户只需要产生指定的行为轨迹,不需要键盘手动输入,极大优化了传统验证码用户体验不佳的问题;

同时验证码后台针对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果,优化了传统验证码基于单一字符维度容易被暴力破解的问题。后台会检测破解攻击,如果有破解的情况,会自动切换到更高难度的点选式验证码;除此之外网易云还提供终极验证上行短信验证,确保验证码的安全性。

文章来源:网易云

相关导读:

为什么有些验证码看起来很容易但是没人做自动识别的?

网站验证码WEB前端接入实例

滑动验证码相比图形验证码区别是什么?相关推荐

  1. 短信验证码与图形验证码搭配使用更安全

    现今验证方式多种多样,例如短信验证码.图形验证码.语音验证码.滑动验证码.口令验证码等.我们在注册账号.登陆网站的时候,会发现在获取关键的短信验证码时会遇到先输入图形验证码来增加操作的复杂性,表面上看 ...

  2. 短信验证码、图形验证码、邮件验证的自动化测试

    短信验证码.图形验证码.邮件验证问题在自动化测试中是一个很常见的问题,也是一个很棘手的问题.设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意攻击网站,而很不幸的是,我们所使用的一些自动化测试 ...

  3. 1024电商项目的邮箱验证码与图形验证码功能模块

    项目基于springcloudalibaba,模块功能大致概括就是登录页面的时候先完成图形验证码的校验,输入的数字和字母与图片上的相对应之后,会向对应的邮箱或手机号发送邮箱/短信验证码二次验证.这里展 ...

  4. java加减法验证码_Java,Springboot 实现算法验证码加减法图形验证码,Kaptcha 实现加减法验证码...

    最近在做一个加减法验证码,记录下实现的过程. 通常Java实现验证码的工具会用到 kaptcha 这个工具包,但实现的验证码都是图形验证码,没有看到加法验证码,查询了相关资料,实现了加减法验证码,效果 ...

  5. selenium之自动登录获取短信验证码或者图形验证码的方法

    对于很多项目的登录界面都是需要一个验证码的,对于验证码的方式有两种,一种是纯数字,就是验证码是通过发送短信的这种,这种比较好获取,另一种是图形验证码,有些图形验证码比较简单,比如纯数字的,有些比较复杂 ...

  6. java图形验证码_java图形验证码实现

    今天来学习下图形验证码的生成,首先依赖开源组件: com.github.penggle kaptcha 2.3.2 在web.xml中配置名为Kaptcha的servlet: Kaptcha com. ...

  7. 图形验证码+短信验证码【Java应用实例】

    一.图形验证码的实现 1.1 简介 常在网上晃悠的人,对下面这张图都不会陌生.特别是在注册新账号.确认交易时,它们都会频繁出现,要求我们输入正确的验证码,那这些看上去跟我们要做的事情完全无关的验证码到 ...

  8. Python3 爬虫学习笔记 C12【验证码对抗系列 — 图形验证码】

    Python3 爬虫学习笔记第十二章 -- [验证码对抗系列 - 图形验证码] 文章目录 [12.1]关于普通图形验证码 [12.2]tesserocr 库识别验证码 [12.3]pytesserac ...

  9. spring boot集成kaptcha图形验证码

    文章目录 环境变化引发的思考 web.xml设置kaptcha图形验证码 config设置kaptcha图形验证码 kaptcha图形验证码完整教程 kaptcha图形验证码属性表 Linux环境下k ...

最新文章

  1. python游戏编程入门书籍推荐-游戏编程入门书籍推荐:想要游戏编程尽快入门这些书不要错过...
  2. Windows10下git bash中添加wget下载工具
  3. oracle 用户总是 频繁的被锁定 的解决办法
  4. 有关手游设计ICON的几点建议
  5. WD与循环 组合数学
  6. LeetCode MySQL 1212. 查询球队积分
  7. Material Design控件使用学习 toolbar+drawerlayout+ Snackbar
  8. Winform使用DevExpress的WaitDialogForm画面 z
  9. eclipse下添加viplugin插件的方法
  10. python 机器学习第一章
  11. 科技公司亚马逊名字由来_名字叫什么? 为什么亚马逊的“认可”是可爱营销的灾难性尝试
  12. 英文论文评审意见_小弟第一篇英文论文审稿意见求助 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  13. java小组的队名,霸气小组队名口号大全
  14. 预测身高c需语言,预测身高问题。不知哪出问题了,算出乱码。求解!
  15. mv移动或重命名文件
  16. Python | 实现简单的康威生命游戏
  17. 先学python还是r-r语言和python有必要都学吗
  18. 净亏10.89亿欧元!法雷奥:2021年仍需保持谨慎,ADAS业务表现最佳
  19. python用unittest+HTMLTestRunner的框架测试并生成测试报告
  20. 09 Confluent_Kafka权威指南 第九章:管理kafka集群

热门文章

  1. Oracle EBS R12 DBA 培训圆满结束
  2. 好用的国产无线蓝牙耳机有哪些?盘点好口碑国产蓝牙耳机
  3. charles抓不到微信小程序的包【亲测解决】
  4. 项目沟通管理——考点(个人笔记)
  5. Linux的hdparm工具参数详解:硬盘检查、测速、设定、优化
  6. 【便签】签到app安卓客户端(开源)
  7. 震旦ADC208复印机显示“请更换显影组件K”后 “哒哒…”的异响
  8. 绩效考核功能操作流程
  9. Python pymysql 插入数据一直不成功
  10. 资源卫星应用中心下载WFV数据