作家
登录

利用机器学习破解网站验证码 只需15分钟

作者: 来源: 2017-12-19 10:03:12 阅读 我要评论


网站登录验证码的存在一向让人认为不爽,因为输错一个字往往就意味着账号暗码什么的就得从新再输一遍。更有甚者(如12306网站),仅仅验证码一道工序就把人整到困惑人生。不过看了国外一位大年夜神的分享,小编我算是知道为什么12306网站要把验证码设置的┞封么掉常了!

愿世间少一些套路,多一些真诚。

以下是原文:

信赖每小我都对验证码没有好感——你必须输入图像狼9依υ?本,然后才能拜访网站。验证码的设计是为了防止计算机主动填写表格,以此验证你是一个真实的人。但跟着深度进修和计算机视觉的鼓起,它们如今已经变得脆弱不堪。

Adrian没有拜访生考验证码图像的应用法度榜样的源代码。为了打破这个体系,他不得不下载数百个示例图像,并手动输入每个图像对应的验证率攀来练习他的体系。

然则,如不雅我们想要破坏一个开源的验证码体系,在哪里我们可以拜访源代码呢?

我在WordPress.org网站(一个插件下载网站)上搜刮了“captcha”。网页置顶的搜刮结不雅为“Really Simple CAPTCHA”(“真正简单的验证码”,一个验证码生成插件),其活泼安装次数跨越100万:

重要提示:这毫不是对该插件或其作者的挑衅或某种程度上的小看。插件作者本身也说它已经不平俺了棘建议你应用其他器械。这只是一个有趣和快速的技巧挑衅,但如不雅你是其100万用户之一,或许你应当换一个插件了:)

挑衅开端

为便利定制进击筹划,我们起首看一下该插件会生成什么样的图像。在演示网站上,我们看到:

验证码图像展示

大年夜图像看来,验证码明显是四个字母,不过我们要在PHP源代码中验证这一点:

是的,它应用4种不合字体的随机组合生成4个字母的验证码。我们可以看到,在代码中它大年夜不应用“O”或“I”,以避免用户混淆。这就给我们留下了32个可能的字母和数字。

今朝记时:2分钟

我们的对象集

我一向在读一本由Adrian Rosebrock写的《Deep Learning for Computer Vision with Python》(用Python实现机械视觉的深度进修)。在这本书中,Adrian经由过程机械进修,在E-ZPass纽约网站上绕过了验证码阶段:

在我们进一步评论辩论之前,先来列举一下解决这个问题的对象:

Python 3

Python是一种很有趣的编程说话,有很好的机械进修和计算机视觉库。

OpenCV是一个风行的计算机视觉和图像处理框架。我们将应用OpenCV来处理验证码图像。它有一个Python API,所以我们可以直接大年夜Python中应用它。

Keras

Keras是一个用Python编写的深度进修框架。它可以或许以起码的代码定义、练习和应用深度神经收集。(这个评价可能不敷客不雅。)

TensorFlow

TensorFlow是谷歌的机械进修库。我们会在Keras中编码,然则Keras并没有真正实现神经收集逻辑本身。是以,它应用谷歌的TensorFlow库来完成沉重的义务。

好的,回到挑衅!

创建数据集

练习任何机械进修体系,我们都须要练习数据。要破解验证码体系,我们须要如许的练习数据:

因为我们有了该插件的源代码,所以我们可以经由过程修改它来保存10000个验证图像,以及每个图像的预期谜底。

在对代码进行了几分钟的黑客进击并添加了一个简单的for轮回之后,我有了一个包含练习数据的文件夹—10,000个PNG文件,每个文件都有精确的谜底作为文件名:

今朝记时:5分钟

简化这个问题

如今我们有了练习数据,我们可以直接用它来练习神经收集:


  推荐阅读

  面向未来:企业储存2018预测

跟着2017岁尾的邻近,分析师、供给商、参谋和其他更多的人正把留意力转向每年一度的典礼,猜测将来一年科技的成长。欲望你能发明我的预言更有趣一些,即使它们不完全切近事实。然则,你们知道吗,我们这>>>详细阅读


本文标题:利用机器学习破解网站验证码 只需15分钟

地址:http://www.17bianji.com/lsqh/39913.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)