如果你因为网站数据一直被爬,如果你因为活动一直被刷,如果你的短信通道被当成人肉炸弹,如果你的论坛被机器人野蛮刷帖,如果你的账户系统一直被暴力破解,如果你用了各种验证码包括极验也根本没用,你可以来这里了解一下 https://yuan.shuidi.cn

我们先来分析一下市面上的验证码

1、明显漏洞验证码

有明显漏洞的验证码 一般是根本就不明白验证码是用来干什么的程序员设计出来,可能是产品设计上有个验证码,好,那我实现一个,或者是外包公司实现功能即可,根本不管客户死活

下面是一个案例

给用户一个数学运算,然后求结果, 结果这个数学运算,用字符的形式输出到页面上,而不是保存成一张图片,这种验证码,形同虚设

2、数字,字母,中文验证码

这种验证码从互联网出现就存在了,数字,字母,中文,干扰线,噪点,旋转,扭曲,重叠,各种手段,但是还是无法去除特征太明显,组合结果太少的情况,用深度学习等ai手段很容易识别,市面上的一些orc的接口也能简单识别

所以这种验证码 在2019年的今天已经很无力了,如果你做过投票活动,你就会知道,刷票公司破解你的验证码是有多容易

3、极验验证码

极验验证码,号称行为识别,其实没那么高端,如果抛开复杂的js混淆逻辑,其实很简单,写个算法破解图片上的滑块缺口位置很容易(一个二值化就ok),复杂的只是极验的js混淆加密流程,但是客户端代码就是客户端代码,它是百分百可以破解的,只要你有足够的耐心,慢慢调试,总能找到最后的逻辑,所以极验的验证码并不是那么牢靠,市面上第三方破解极验的服务一大堆也很便宜,后续我会写一篇破解极验的文章

我们如何来设计一个几乎无法破解的验证码呢?

它只要满足一个要求,验证码的结果,用机器很难,或者要花费很长时间,花费很多代价才可以识别出结果

那些复杂的js混淆,各种花里胡哨的写法根本就没有任何作用

下面我们来介绍我们将要设计验证码的核心思路

将一张图旋转到一个随机的角度,然后让用户去识别图片的正确方向

人类通过自己的经验用不到1s的时间就可以识别出这张图的方向

但是利用目前的机器学习模型,如果要做到图片方向的识别还非常困难

当然有的同学说了,这个图就360张可能,我人工把这张图摆正,然后再生成360张旋转图,一张一张对比即可,把图片md5存到数据库,再加个索引,不要太简单

你说的很对,如果就这么一张图,你确实可以这么做,

解决这个难题很简单

生成的图片我们给一个10*10的随机偏移量,这样,一张图片,我们可以生成 10*10*360张图,然后我们在图片里随机的加空白点,这样,就无法md5做成索引查找了,比对只能遍历

然后我们再通过网络爬虫爬取那些没有版权的图片,让图片有上万张,你还可以一张一张的用人工摆正来识别码?

10000 * 10 * 10 *360

有的同学说可以,我有的时间

好,假设我我有一万张图,我一个小时放10张图出来,每个小时的图都不一样,你可以和我耗40多天吗?

我有10万张图呢?

是不是很刺激,想想那些spider们,刷票公司看着我们的验证码,望洋兴叹是不是很刺激 ,哈哈哈哈哈

那就赶紧行动起来吧

放一下生成旋转图的 php 代码,你可以将随机出来的角度 存到session里,或者memcache里,就ok啦,记得每次校验完,要把值清空噢,不管正确与否,

        $origin_width = 200;$origin_height = 200;//取一张图 $img_path 是一张210*210的jpg图片$origin_img = imagecreatefromjpeg($img_path);//重新画$src_img = imagecreatetruecolor($origin_width,$origin_height);$alpha = imagecolorallocatealpha($src_img, 0, 0, 0, 127);imagefill($src_img, 0, 0, $alpha);$src_x = rand(0,9);$src_y = rand(0,9);imagecopyresampled($src_img,$origin_img,0,0,$src_x,$src_y,$origin_width,$origin_width,$origin_width,$origin_width);$angle = rand(30,330);$src_img = imagerotate($src_img,-1*$angle,0);$w = imagesx($src_img);$h = imagesy($src_img);$r = $origin_width/2-4;//防止边缘问题,稍微取小一点$real_r = $w/2;//生成一张图$img = imagecreatetruecolor($origin_width-8, $origin_height-8);//防止边缘问题,稍微画小一点imagesavealpha($img, true);$bg = imagecolorallocatealpha($img, 255, 255, 255, 127);imagefill($img, 0, 0, $bg);for ($x = 0; $x < $w; $x++) {for ($y = 0; $y < $h; $y++) {$rgbColor = imagecolorat($src_img, $x, $y);if (((($x - $real_r) * ($x - $real_r) + ($y - $real_r) * ($y - $real_r)) < ($r * $r))) {imagesetpixel($img, $x-($real_r-$r), $y-($real_r-$r), $rgbColor);}}}imagepng($img);//销毁图片imagedestroy($img);

放一个我们已经上线的案例

云版本已上线,目前免费使用  https://yuan.shuidi.cn

我们来做一个不可破解的验证码相关推荐

  1. 我又找到了一个破解谷歌验证码的新方案!

    这是「进击的Coder」的第 452 篇技术分享 作者:崔庆才 之前我曾经写过一篇文章说 Google ReCAPTCHA 验证码的绕过方法,当时介绍的是用 2Captcha,然而有些朋友跟我反映说 ...

  2. 2021-09-29破解小米“铁蛋”,只需9999元,你也可以做一个四足机器人!

    https://www.eet-china.com/news/202109291008.html 2021-09-29破解小米"铁蛋",只需9999元,你也可以做一个四足机器人! ...

  3. 懒人动手,用python做一个基础翻译重命名器(破解百度翻译反爬手段)

    想法: 在做开发的时候,经常需要命名各种变量,方法/函数,类,包,库等. 走一遍流程就是:想好要起的名字,比如"非常帅气": 然后上翻译网站,比如百度翻译,有道翻译: 将中文输入并 ...

  4. 用Python爬虫破解滑动验证码

    我们可以借用opencv来解决这个问题,主要步骤: opencv 是什么? OpenCV(Open Source Computer Vision Library)是开放源代码计算机视觉库,主要算法涉及 ...

  5. TensorFlow练习20: 使用深度学习破解字符验证码

    验证码是根据随机字符生成一幅图片,然后在图片中加入干扰象素,用户必须手动填入,防止有人利用机器人自动批量注册.灌水.发垃圾广告等等 . 验证码的作用是验证用户是真人还是机器人:设计理念是对人友好,对机 ...

  6. python手工打码_使用Python + Selenium破解滑块验证码

    在前面一篇博客,介绍了 Selenium 的基本用法和爬虫开发过程中经常使用的一些小技巧,利用这些写出一个浏览器爬虫已经完全没有问题了.看了前一篇博客,可能有人会有疑惑,浏览器爬虫的优势感觉并不比传统 ...

  7. 用Python 爬虫,如何破解谷歌验证码?

    ReCAPTCHA 介绍 可能大家还没听说过什么是 ReCAPTCHA,可能由于某些原因,这个验证码在国内出现不多,不过想必大家应该多多少少见过或用过.它长这个样子: 这时候,只要我们点击最前面的复选 ...

  8. 暴力破解与验证码安全之——验证码安全

    验证码安全 简介 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apa ...

  9. 【破解旋转验证码】百度拖动旋转验证码识别方案

    前言 百度的验证码又双叒更新了. 当然出于好奇,猫又拿起了键盘开始挑战. 正文来了. 先来看看继上次破解百度旋转验证码后,百度的大佬又做出了哪些改变. 1.抓取图片时加上了马赛克 2.增加了图片库 抓 ...

最新文章

  1. ssm框架app管理平台_后端程序员跨平台应用的前端框架uni-app初探
  2. qt连接错误ip的sqlserver超时时间_参数设置导致请求超时案例
  3. 实验7-3-5 输出大写英文字母 (15分)
  4. Haproxy安装与配置
  5. 基于NFC的Android读写软件,NFC读写(android代码)
  6. Web前端:7大Web开发趋势和技术
  7. 实验二 VB基本界面设计
  8. 【建模算法】基于遗传算法求解TSP问题(Python实现)
  9. google服务框架 闪退_刷入对应谷歌服务框架之后依然闪退怎么办 解决方方攻略...
  10. 电脑 u盘 正在计算机,优盘插在电脑上一直显示正在扫描优盘怎么回事
  11. CS224N NLP
  12. 怎么注册Google Earth Engine(GEE)
  13. LTE下行传输机制--PBCH
  14. 计算机图形学——八分法中点画圆
  15. 远程遥控小车搭建记录
  16. VScode使用指南之如何全屏和退出全屏(1)
  17. 关于组织举办区块链与隐私计算等新技术融合应用高级研修班的通知
  18. RTK ? PPK ?到底该选啥
  19. 2021年最新React状态管理解决方案
  20. JavaScript最全面试题

热门文章

  1. RNA-seq第四期——HTSeq-count对reads进行计数
  2. springboot启动事件监听器退出钩子
  3. CnOpenData中国对联数据
  4. MP4文件转YUV格式
  5. ABAP-SUBMIT传值(基本)
  6. dw1000信标码_DW1000超宽带测距源码和原理图
  7. 仿生女朋友会梦见电子男朋友吗?——能模仿女神说话声音的闲聊QQ机器人
  8. Java 学习 Day14
  9. 9.触摸屏驱动移植实战
  10. 重装系统win11的步骤和详细教程