大数据文摘作品
编译:Katrine Ren、朝夕、钱天培
验证码这种东西真的是反人类。虽然它在保证账号安全、反作弊以及反广告有着至关重要的作用,但对于普通用户来说,输验证码很多时候实在是让人抓狂。
文摘菌18岁的时候帮朋友刷QQ空间留言就天天和验证码作斗争,前几天传一个视频又创下了连续7次输错验证码的记录。不过好在文摘菌最近发现,用机器学习破解简单验证码已经是妥妥的小事了。
今天,文摘菌就带来了一个15分钟黑掉世界上最受欢迎的验证码插件的小教程。欢迎开启新年第一黑。
先给大家介绍一下今天我们要黑的验证码插件。在Wordpress官网的插件注册页面(https://wordpress.org/plugins/)搜索“captcha”,返回的第一条结果“Really Simple CAPTCHA”就是今天我们要开刀的插件了。
由于这个插件是开源的,我们可以用它的源代码任意生成我们训练需要的验证码图片了。为了让这件事更有一点挑战性,我们不如给自己设定一个问题解决的时间限制——就15分钟吧!
插播:我绝对没有任何批评“Really Simple CAPTCHA”这个插件或它的作者的意思。这个插件的作者本人也承认这个插件已难以保证安全性了,并建议大家使用别的方法。本文只是在单纯地阐述一个有趣而快捷的技能挑战。然而,如果你正好是这个插件的100万多个用户里的一个,可能你是时候换个别的工具了。
热身准备
为了制定一个作战计划,让我们先来看看“Really Simple CAPTCHA”这个插件能够生成的是什么类型的图片吧。
好吧,看来这是个由4个字母组成的验证图片。让我们核实一下它的PHP源代码:
没错,它用了任意混合4种不同的字体的方式来生成了4个字符的验证码。我们可以看到,这个系统为了避免用户混淆字母和数字,在代码中设定了从来不使用O和I这两个字母。所以算下来我们需要识别的字母和数字共有32个。
目前用时:2分钟。
工具一览
工欲善其事,必先利其器。要解决我们的问题,我们需要用到以下工具:
Python 3
Python有很多机器学习和计算机视觉库可以调用。