验证码3分钟有效是什么意思过了15分钟后还有效吗?

每个人都讨厌验证码——只有输入了那些讨厌的图片上的文本,才能访问网站。验证码的设计是为了防止计算机自动填写表格,验证你是一个真实的“人”。但随着深度学习和计算机视觉的兴起,现在他们往往容易被击败。我一直在读一本由Adrian Rosebrock所写的书《Deep Learning for Computer Vision with Python》(Python计算机视觉深度学习)。在这本书中,Adrian回顾了如何通过机器学习破解e – zpass纽约网站上的验证码系统:Adrian没有访问生成验证码图像的应用程序的源代码。为了破解这个系统,他不得不下载数百个示例图像,并手动解决它们以训练他的系统。但是,如果我们想要破解一个开源的验证码系统,我们去哪里访问源代码呢?我访问了WordPress.org插件登记网站,并搜索了“CAPTCHA”。上面的结果被称为“Really Simple CAPTCHA”,并且有超过100万的安装量:WordPress.org插件登记地址:https://wordpress.org/plugins/最棒的是,这里有它的源代码!因为有生成验证码的源代码,所以这应该很容易被破解。为了让事情变得更有挑战性,让我们给自己一个时间限制。我们能在15分钟内彻底破解这个验证码系统吗?让我们试一试!重要提示:这绝不是批评“Really Simple CAPTCHA”插件或其作者。插件作者自己说它已经不安全了,建议你使用其他的东西。这只是一个有趣并且快速的技术挑战。但如果你是100万用户之一,或许你应该有所防备了:)挑战首先,让我们需要知道 Really Simple CAPTCHA生成什么样的图像。在演示网站上,我们看到:Really Simple CAPTCHA地址:https://wordpress.org/plugins/really-simple-captcha/演示验证码图片验证码图像看起来是四个字母。让我们在PHP源代码中验证这一点: public function __construct() {
/* Characters available in images */
$this-&chars = ABCDEFGHJKLMNPQRSTUVWXYZ;
/* Length of a word in an image */
$this-&char_length = 4;
/* Array of fonts. Randomly picked up per character */
$this-&fonts = array(
dirname( __FILE__ ) . /gentium/GenBkBasR.ttf,
dirname( __FILE__ ) . /gentium/GenBkBasI.ttf,
dirname( __FILE__ ) . /gentium/GenBkBasBI.ttf,
dirname( __FILE__ ) . /gentium/GenBkBasB.ttf,
);是的,它生成了4个字母的验证码,使用4种不同字体的随机组合。我们可以看到,在代码中它从不使用“O”或“I”,以此避免用户的混淆。这就给我们留下了32个可能的字母和数字。到目前为止的时间:2分钟我们的工具集在我们进一步讨论之前,我们先来讨论一下解决这个问题需要的工具:Python 3Python是一种很有趣的编程语言,包含很好的机器学习和计算机视觉库。OpenCVOpenCV是一个流行的计算机视觉和图像处理框架。我们将使用OpenCV来处理验证码图像。它有一个Python API,因此我们可以直接在Python中使用。KerasKeras是用Python编写的深度学习框架。它使得定义、训练和使用具有最小编码的深度神经网络变得很容易。TensorFlowTensorFlow是谷歌的机器学习库。我们将在Keras中编码,但是Keras并没有真正实现神经网络逻辑本身。相反,它使用谷歌在幕后的TensorFlow库来完成繁重的任务。好了,回到挑战。创建数据集训练任何机器学习系统,都需要训练数据。要破解验证码系统,我们需要这样的训练数据:我们有了WordPress插件的源代码,就可以修改它来保存10000个验证码图像,以及每个图像的预期答案。在对代码进行了几分钟的破解并添加了一个简单的for循环之后,我有了一个包含训练数据的文件夹—10,000个PNG文件,将正确的答案作为其文件名:这是唯一的我不给你示例代码的部分。我们这样做是为了教学,我不希望你真的去垃圾邮件网站。但是我会给你我在最后生成的10000张照片,这样你就可以复制我的结果。到目前为止的时间:5分钟简化问题现在我们有了训练数据,我们可以直接用它来训练神经网络:如果有足够的训练数据,这种方法可能有效——但是我们可以使问题变得简单得多。问题越简单,训练数据越少,我们解决需要的计算力就越少。我们毕竟只有15分钟!幸运的是,验证码图像通常只由四个字母组成。如果我们能把图像分割开来,这样每个字母都是一个单独的图像,那么我们只需训练神经网络识别单个字母:我没有时间去浏览10000个训练图像,并且用Photoshop将它们手工分割成单独的图像。这需要几天的时间,但我只剩下10分钟了。我们不能将图像分割成4个等分大小的块,因为验证码随机将字母放置在不同的水平位置,如下图所示:每个图像中的字母都是随机放置的,使图像分割变得更加困难。幸运的是,我们仍然可以实现自动化。在图像处理中,我们经常需要检测具有相同颜色的像素的“blob”。这些连续像素点的边界称为轮廓。OpenCV有一个内置的findContours()函数,我们可以用它来检测这些连续区域。我们将从一个原始的验证码图像开始:然后我们将图像转换成纯黑白像素点(这称为色彩阈值法),这样就很容易找到连续区域的轮廓边界:接下来,我们将使用OpenCV的findContours()函数来检测图像中包含相同颜色连续像素块的分离部分:接着把每个区域作为一个单独的图像文件保存。因为我们知道每个图像应该包含从左到右的四个字母,所以我们可以用这些知识来标记我们保存的字母。我们按这个顺序把它们存起来,并用相应的字母名称来保存每一个图像字母。但是等一下 — 我发现问题了!有时验证码有这样重叠的字母:这意味着我们最终将提取将两个字母拼凑在一起的区域:如果我们不处理这个问题,我们就会产生糟糕的训练数据。我们需要解决这个问题,这样我们就不会偶然地让机器将这两个squashed – together字母识别为一个字母。有一个简单的窍门:如果一个区域的宽比它的高度大,那就意味着我们可能有两个字母挤压在一起了。在这种情况下,我们可以把这两个字母放在中间,把它分成两个独立的字母:现在我们有了一种提取单个字母的方法,让我们在所有的验证码图像中运行它。目的是收集每个字母的不同变体。我们可以把每个字母都保存在自己的文件夹里。这是我摘取所有字母后,“W”文件夹的图片:到目前为止的时间:10分钟构建并训练神经网络因为我们只需要识别单个字母的图像,所以并需要一个非常复杂的神经网络结构。识别字母比识别像猫和狗这样的复杂图像要容易得多。我们将使用一个简单的卷积神经网络架构,它有两个卷积层和两个完全连通的层:定义这个神经网络架构只需要使用Keras的几行代码:# Build the neural network!model = Sequential()# First convolutional layer with max poolingmodel.add(Conv2D(20, (5, 5), padding="same", input_shape=(20, 20, 1), activation="relu"))model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))# Second convolutional layer with max poolingmodel.add(Conv2D(50, (5, 5), padding="same", activation="relu"))model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))# Hidden layer with 500 nodesmodel.add(Flatten())model.add(Dense(500, activation="relu"))# Output layer with 32 nodes (one for each possible letter/number we predict)model.add(Dense(32, activation="softmax"))# Ask Keras to build the TensorFlow model behind the scenesmodel.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])现在我们可以运行它了。# Train the neural networkmodel.fit(X_train, Y_train, validation_data=(X_test, Y_test), batch_size=32, epochs=10, verbose=1)经过训练数据集10次之后,我们达到了接近100%的准确度。我们应该能够在任何我们需要的时候自动绕过这个验证码。时间过了:15分钟使用训练的模型来以解决验证码现在我们有了一个经过训练的神经网络,用它来破解验证码是很简单的:1. 从WordPress插件的网站上获取真正的验证码图像。2. 用我们用来创建训练数据集的方法将验证码图像分割成四个不同的字母图像。3. 让我们的神经网络对每个字母图像做一个单独的预测。4. 用四个预测字母作为验证码的答案。下面是我们的模型如何解码真实的验证码:或从命令行:试一下如果你想亲自尝试,你可以在这里获取代码。它包括10,000个示例图像和本文中每个步骤的所有代码。班阔说明如何运行模型的README.md文件。代码地址:https://s3-us-west-2.amazonaws.com/mlif-example-code/solving_captchas_code_examples.zip如果你真的想要深入了解代码背后的知识,那么我建议你读一下《Deep Learning for Computer Vision with Python》。它包括了很多细和大量示例,如果你对解决现实生活中困难问题的示例感兴趣,那么它或许很适合你。AI先锋ID:EnlightAI关注人工智能行业发展,介绍人工智能技术与产品
15分钟实战机器学习:验证码(CAPTCHA)识别
让我们使用机器学习(machine learning)来绕过世界上最流行的Wordpress验证码插件!
每个人都不喜欢验证码(CAPTCHA) - 那些令人讨厌的图像中包含了你必须正确输入的文本,...
机器学习之验证码识别
项目背景:
之所以做这个其实很久就有这个想法了,因为搞爬虫有大半年了,怕热很多网站,也模拟登陆了许多网站,包括知乎微博等,但是有个问题是,当我们遇到验证码的时候,就需要人工打验证码了,特别是用sel...
一个验证码破解的完整演示
这篇博客主要讲如何去破解一个验证码,for demo我会使用一个完整的工程来做,从原始图片到最终的识别结果,但是破解大部分的验证码其实是个很费力的活,对技术要求反而不是特别高,为什么这么说呢? 主要原...
极验验证码破解
极验验证码破解[国家企业信用信息公示系统为例]
一、网站http://www.gsxt.gov.cn滑动验证码概述
二、极验验证码破解-抓包分析
三、极验验证码破解-搭建本地验证码服...
验证码,再见!利用机器学习在15分钟内破解验证码
每个人都讨厌验证码——只有输入了那些讨厌的图片上的文本,才能访问网站。验证码的设计是为了防止计算机自动填写表格,验证你是一个真实的“人”。但随着深度学习和计算机视觉的兴起,现在他们往往容易被击败。我一...
15 分钟教你使用机器学习破解一个验证码系统-干货超详细讲解
人人都恨验证码——那些恼人的图片,显示着你在登陆某网站前得输入的文本。设计验证码的目的是,通过验证你是真实的人来避免电脑自动填充表格。但是随着深度学习和计算机视觉的兴起,现在验证码常常易被攻破。我拜读...
破解极验(geetest)验证码
极验(geetest)验证码的研究最近在搞爬虫的时候在好几个网站都碰到了一种叫做geetest的滑动条验证码,一直没有太好的办法只能在触发这个验证码后发个报警去手动处理一下。http://www.ge...
极验验证码破解(三)
一、网站http://www.gsxt.gov.cn滑动验证码概述
二、极验验证码破解-抓包分析
三、极验验证码破解-搭建本地验证码服务
四、极验验证码破解-分析geetest...
Python 爬虫入门(四)—— 验证码下篇(破解简单的验证码)
http://www.cnblogs.com/hearzeus/p/5226546.html
  1.)获取验证码
  在上节,我们已经讲述了获取验证码的方法,这里不作赘述。下面是...
没有更多推荐了,http://www.bugcode.cn/break_captcha.html
很多开发者都讨厌网站的验证码,特别是写网络爬虫的程序员,而网站之所以设置验证码,是为了防止机器人访问网站,造成不必要的损失。现在好了,随着机器学习技术的发展,机器识别验证码的问题比较好解决了。
样本采集工具
这里我们采用wordpress的Really Simple CAPTCHA生成验证码的插件,之所以选择这个插件,一个是它的安装量很大,二个是因为它是开源的,我们可以利用它批量的生成验证码图片。
我们通过demo网站得知,Really Simple CAPTCHA生成的是包含4个数字或者字母的图片,通过阅读源码得知,这个插件还屏蔽了O和I这两个比较容易混淆的字母,也就是说,还剩下32个字符,看来可以完成。
目前花费了两分钟。
我们要用到以下的工具和库。
python3opencvkerastensorflow创建样本集
为了达到目的,我们首先要准备样本集,样本如下:
使用Really Simple CAPTCHA插件的源码,我们很方便的批量生成10000个验证码图片和对应的结果,待我们生成完成后,大概如下:
这地方大家可以根据自己的实际情况修改Really Simple CAPTCHA插件的源码,来生成自己想要的样本集。如果你觉着麻烦,也可以下载我生成好的。
目前为止,我们花了五分钟。
我们现在有了样本集了,我们可以直接那图片和对应的结果直接进行神经网络的训练。只要我们的样本够多,最终也能达到我们想要的效果。
但我们也可以采用更好的训练方法,这个训练方法使用更少的样本数据,但是结果要比直接训练的方法好很多,我想你已经猜到了,这个方法就是把图片中的四个字符切割开,形成四个样本。这方法之所以可行,是因为所有的验证码图片都是4个字符的。
10000张图片,一张一张手动用PS去切割,肯定不现实,而且由于图片的横向排列并不是等间距的,字符间的距离大小不一致,手动切割肯定不可能了。
其实我们只要画出一个矩形,保证矩形框里只有字符就可以,然后从图片中切出这样的一个矩形,就形成了一个单个字符的图片样本。幸运的是,这个操作opencv已经帮我们实现了,opencv有个函数叫做findContours(),可以按照同样色值的区域裁剪我们想要的矩形。- 首先准备一个图片:- 转换图片为黑白色。这样有字符的地方为黑色,空白为白色,便于opencv裁剪。-接下来我们用opencv的findContours函数切割图片。
接下来,我们就把图片从左到右进行切割,并存储切割后的图片,以及图片对应的字符。但是实际操作的过程中,我发现一个问题,就是有时候两个字符靠的太近,导致opencv在切割的时候,把两个字符切割刀一个图片里了,比如:切割完的效果是:如果不解决这个问题,我们的样本集就不准了,那训练出来的模型也就不可能正确了。我的解决方法是,首先设置一个字符宽最大的像素,如果超过这个像素,则认为一个图片中包含了两个字符,然后我们选择把这个图片对半切割,分成两个字符。例如:好,我们现在得到了一个验证码图片对应的4个字符的图片,现在我们把所有的样本图片都切割好,然后,把相同的字符对应的图片放到一个文件夹,这么做的目的是尽量多的找出同一个字符的多种样式。结果如下:
到目前为止,我花了10分钟。
因为我们只是识别图片对应的数字或者字母,所以我们不需要特别复杂的神经网络算法。识别字符比识别小猫小狗的简单多了。
我这地方使用卷积神经网络,two convolutional layers and two fully-connected layers。这地方对卷积神经网络算法就不做详细介绍,感兴趣的同学,可以google学习一下。
训练完成后,我们需要测试一下。15分钟花完。
整个过程看起来很简单:- 从使用我们上述提到的插件的wordpress网站上下载验证码图片- 把图片切割成包含单个字符的小图片- 使用神经网络算法训练模型- 预测新的验证码图片对应的字符
下面是我的测试:
你可以得到完整的代码和示例图片,你可以参照README来运行相关的程序。
转载自我的博客
THC-HYDRA是一个支持多种网络服务的非常快速的网络登陆破解工具。这个工具是一个验证性质的工具,它被设计的主要目的是为研究人员和安全从业人员展示远程获取一个系统的认证权限是比较容易的!
周末闲来无事,尝试通过java语言和相关工具实现对于一些安全级别比较低的网站进行后台管理员密码的破解。说是属于攻击,还没那么牛逼,采用这种方式尝试登陆,一个晚上没有关机,生产的随机密码4-6位,为缩小...
极验验证码破解[国家企业信用信息公示系统为例]
一、网站http://www.gsxt.gov.cn滑动验证码概述
二、极验验证码破解-抓包分析
三、极验验证码破解-搭建本地验证码服...
带有验证码暴力破解、原理很简单,调用开源TESTOCR识别验证码
import java.io.BufferedR
import java.io.Fi...
网站安全里,用户密码被暴力破解,尤其网站的用户登录页面,以及网站后台管理登录页面,都会遭到攻击者的暴力破解,常见的网站攻击分SQL语句注入攻击,密码弱口令攻击,用户密码暴力破解攻击,跨站攻击XSS等...
所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。不少网站为了防止用户利...
这篇博客主要讲如何去破解一个验证码,for demo我会使用一个完整的工程来做,从原始图片到最终的识别结果,但是破解大部分的验证码其实是个很费力的活,对技术要求反而不是特别高,为什么这么说呢? 主要原...
登录网站时必须输入的图片验证码可以用来识别访问者到底是人还是机器——这同时也是某种程度上的「图灵测试」,人工智能研究者们寻求破解的方向,让计算机学会破解验证码,我们就距离通用智能更近了一步(前不久 V...
让我们一起攻破世界上最流行的WordPress的验证码插件每个人都讨厌验证码——在你被允许访问一个网站之前,你总被要求输入那些烦人的图像中所包含的文本。验证码被设计成,以验证你是一个真正的人的方式,来...
影响版本:Emlog&=5.3.1
漏洞演示环境的搭建:使用PHPstudy在本地搭建PHP+MYSQL+Apache环境:注:如果在本地安装了IIS服务,会使得端口冲突,此时我们要进...
没有更多推荐了,后使用快捷导航没有帐号?
此主题已被移至回收站,您暂无权浏览
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,邮箱:@b.qq.com
Powered by
X3.2 揭阳市揭东区精易科技有限公司
粤公网安备 25你们快递验证码会不会被自动删除
我已经把15分钟自动删除验证码功能关了
还是找不到我的验证码【360n7吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:3,702贴子:
你们快递验证码会不会被自动删除
我已经把15分钟自动删除验
你们快递验证码会不会被自动删除
我已经把15分钟自动删除验证码功能关了
还是找不到我的验证码
「天猫手机馆」-360 n7,新品上线,海量内存,非凡畅快体验,超清拍照功能,惊艳登场!「天猫手机馆」7天无理由退换货,购物无忧!
不会,而且验证码过了十五分钟也失效了
贴吧热议榜
使用签名档&&
保存至快速回贴【百度】610476 (动态验证码),请在15分钟内填写_百度知道
【百度】610476 (动态验证码),请在15分钟内填写
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
为你推荐:
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 移动的验证码3分钟有效 的文章

 

随机推荐