- RPA门户
验证码(CAPTCHA)是“Completely Automated Public Turing testto tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。
Part 1:认识验证码世界
▲
【直接识别型验证码】
验证码通过一次识别直接获得答案,我们惊奇的发现随着时间推移,不带干扰,或者带很小干扰的这种类型的验证码已经越来越少,取而代之的是有越来越多干扰项的验证码,对机器的识别准确率是蛮大的考验。
【识别+计算验证码】
识别文字或数字只是第一步,第二步如果是简单的加减乘除基本没任何难度,如果是复杂的文字需要理解语义,那么让机器搞定还是有一点难度的。
【拖动型验证码】
拖动型最简单的就只需要从左拖到→_→,复杂一点的呢需要水平移动找缺口,更复杂的呢就是全方向背景干扰多的类型。
【识别点击验证码】
目前已是蛮常见的验证码类型。
【娱乐性验证码】
想成为验证码被人打,首先你得是明星,才得够红,那才有资格入选验证码库。“嘿,听说了吧,XXX也被做成验证码了” ,可能说明人家红了。
下面请鉴赏一组奇葩的验证码
???纯阳五子,神马玩意,还有只羊,有什么关系吗?
这个题问的也是,首先得知道这8位分别是干什么,有没有什么爱好和副业。就比如这金三胖,他的职业应该算“皇上”之类的对吧,那么他会不会同时又是个相声演员呢?我的天,得翻金三胖的履历才能了解吧。
嗯~~ 这个应该不算太难,第四个容嬷嬷肯定不是,那么第二个是谁?当过皇后吗?
这个验证码更变态,好字打个引号,是想让人选谁是渣男吧。 可问题是,好与坏的标准一直是动态的,明白吗?那几个月可能是渣男坏人,过了几个月人家洗白后又会成好人的。所以这题的答案在不同的时间段可能还不一样。== ,第七个图里有两个男人,这怎么算?
呵呵,“不懂球的胖子”,短短6个字,故事前因后果,信息量太大。
带白的人物,指什么带白,名字带白,还是肤色白,头发白?
舞法天女是一个角色,还是一种游戏职业?太二次元的题
“喵星人抢不到”是什么意思,底下6个瞄,1个汪,1个马,是想让人选狗和马,还是选6只瞄。
这哪里是验证码,就是市场营销好哇。
【按需点击验证码】
要求直接写在题目中的相对简单,还需要有文学造诣凑诗句的明显更难。
刮刮乐验证码也挺有意思的
所有以上验证码都有一个特征,那就是谜题谜面信息源都在一个地方,都在那个在线平台的入口,结合打码平台,以上验证码都已可以破解
按语序图像点击机器人实现案例
有兴趣的朋友还可以登录RPAPlus社区论坛,讨论不同RPA工具的验证码实现方案
https://www.rpaplus.com/community/rpaplus-uipath 探讨Uipath 验证码应用方案
https://www.rpaplus.com/community/rpaplus-blueprism 探讨BluePrism 验证码应对方案
https://www.rpaplus.com/community/rpaplus-others/ 探讨Python解决这些验证码的方案
什么样的验证码难破解呢?
答案是将信息分散到不同的渠道,例如最常见的短信验证码,Token,网银盾
语音验证码
再进一步就需要目前国内很多科技公司在做的活体检测认证了
Part 2:验证码之矛
▲
许多推崇自动化的人觉得验证码是一种很讨厌的东西,他们天天想着怎么破解网站验证码。
破解验证码的思路大体如下,请参考:
1- 验证码抓图识别 , 丢给Tensor Flow 也好 ,Abby 也罢 , 或者合合信息,whatever 你觉得靠谱的OCR软件。所以都是用RPA工具截下图,丢给识别软件识别,然后再去拿结果。
2- 那些很复杂的验证码,还靠自己用机器学习,语义分析,机器视觉,各类高级算法去解决吗? RPA + 打码平台 无疑是最优解决方案。 前文中按语序点击那个GIF动图,就是用到了打码平台。
打码平台:
之所以可以那么厉害,是因为哪怕技术手段都失效,人家还有真人做打码枪手作为最后一道防线。 而随着打码的次数越来越多,打码库越来越大,很多验证码都可以秒打。 这其实是另一个 “人工”智能。
目前百度主动在做推广的两家打码平台,斐斐我们比较熟悉,上半年的文章中也提到过他。
可能有人会问,如果纯内网无法连接外网的打码平台怎么办?
定制微信小程序,把验证码截图直接推送给相关业务老师微信客户端,待老师回复后,机器人继续工作,这个方案是不是比较酷。
Part 3:验证码之盾
▲
我们知道有许多动态生成验证码的库,例如 Java JCaptcha , jQuery Ajax Fancy Capcha, Captcha PHP , 3DCaptcha 等等,每一个库各有特色也各有缺点。
为了更好的解决这个问题,就有专门的第三方公司就开始专门提供人机验证等安全认证平台。
国内目前比较知名的有:
然后还有一堆没什么技术含量的只提供短信认证的平台,他们的优势是价格便宜。
Google 的人机验证服务 reCAPTCHA 对于屏蔽 NHT(RTBAsia:Non Human Traffic,非人类的访问)非常有用,但正常情况下在国内是无法正常使用的,那么怎样才能让 reCAPTCHA 在国内正常工作呢?
方法:
将前端中 JS 的 src 从
https://www.google.com/recaptcha/api.js
改为
https://www.recaptcha.net/recaptcha/api.js
将后端的 API 地址从
https://www.google.com/recaptcha/api/siteverify
改为
https://www.recaptcha.net/recaptcha/api/siteverify
Part 4 小结
Part 4:小结
▲
全文写了超过两千字了,却没怎么真正提的具体解决方法,原因是每一种类型的验证码都需要特定的方法去解决,全部放到一个文章简直无法阅读。后续可以到咱们社区一起探讨交流呀。
PS. 如何将自己的照片加入识图打码的平台呢?
附. 关于微信公众号
官网: www.rpaplus.com
微信公众号ID:RPA_Journey
社区论坛:www.rpaplus.com/community 持续运营中
本文来自RPAPlus