看我怎么编写一个验证码辨认程序

访客5年前关于黑客接单856

在此之前我收到了一些读者对我的反应,他们期望我能够在文中解说相关解析器的开发流程。为了满意我们的需求,我决议和你们共享一个我非常重要的项目的完好施行进程。话不多说,让我们现在就开端!
当我开发这些脚本时,我对图画处理或其间的算法没有任何的了解或认知。最开端时我所能想到的便是:
图画根本上是一个矩阵,像素作为独自的单元格。
五颜六色图画具有每个像素的元组(红,绿,蓝)值,灰度图画具有单个值,而且一般图画中每个像素值的范围在(0,255)。
以下是我大学网站的登录界面:

首要,我对验证码做了开始的调查剖析。总结如下:

验证码中的字符位数一直为6位,而且是灰度图画;
字符之间的距离看起来一直保持相同的距离;
每个字符都是彻底界说的;
图画有许多杂散的暗像素,以及穿过图画的线条
我决议下载一个图片验证码,并凭借这款东西以二进制可视化图画(0表明黑色,1表明白色像素)。

我的调查是正确的 – 图画尺度为45×180,每个字符被分配一个30像素的空间来拟合,从而使它们均匀距离。
因而,我的第1步是
将图画裁剪成6个不同的部分,每部分的宽度为30像素。
这儿我挑选运用Python作为我的开发言语,由于它的库最易运用和完成。
经过简略的搜索后,我找到了PIL库。我决议运用Image模块,由于我的操作仅限于裁剪并将图画作为矩阵加载。
所以,依据文档,裁剪图画的根本语法如下:
from PIL import Image
image = Image.open("filename.xyz")
cropped_image = image.crop((left, upper, right, lower))
在本例中,假如你想裁剪榜首个字符,
from PIL import Image
image = Image.open("captcha.png").convert("L") # Grayscale conversion
cropped_image = image.crop((0, 0, 30, 45))
cropped_image.save("cropped_image.png")
被裁剪保存的图画:

我将其包装在一个循环中,写了一个简略的脚本,从该站点获取500个验证码图画,并将一切裁剪后的字符保存到一个文件夹中。
第三次调查 – 每个字符都有明晰的界说。为了“整理”图画中的裁剪字符(删去不必要的线和点),我运用了以下办法。
字符中的一切像素都是纯黑色(0)。我用了一个简略的逻辑 – 假如它不是彻底黑色的,就视为白色。因而,关于值大于0的每个像素,将其重新分配为255。运用load()函数将图画转换为45×180矩阵,然后对其进行处理。
pixel_matrix = cropped_image.load()
for col in range(0, cropped_image.height):
    for row in range(0, cropped_image.width):
        if pixel_matrix[row, col] != 0:
            pixel_matrix[row, col] = 255
image.save("thresholded_image.png")
为了愈加明晰,我将代码使用至原始图画上。
原图:

处理后:

能够看到处理后的图画中的非纯黑像素都已被移除,其间包含交叉图画的线条。
直到项目完成后,我才知道上述办法被称为图画处理中的阈值处理。
第四次调查 – 图画中有许多杂散像素。
循环遍历图画矩阵,假如相邻像素为白色,与相邻像素相对的像素也为白色,且中心像素为黑色的,则使中心像素为白色。
for column in range(1, image.height - 1):
    for row in range(1, image.width - 1):
        if pixel_matrix[row, column] == 0
            and pixel_matrix[row, column - 1] == 255 and pixel_matrix[row, column + 1] == 255 :
            pixel_matrix[row, column] = 255
        if pixel_matrix[row, column] == 0
            and pixel_matrix[row - 1, column] == 255 and pixel_matrix[row + 1, column] == 255:
            pixel_matrix[row, column] = 255
输出:

能够看到,此刻图画中的字符根本已被独自分离出来了。

[1] [2] [3]  黑客接单网

相关文章

短网址安全浅谈

何谓短网址(Short URL)?望文生义,便是形式上比较短的网址,当时首要是凭借短网址来替代原先冗长的网址,便利传输和共享。短网址服务也便是将长网址转化为短网址的服务,这种服务在便利了广阔网民的一起...

换个视点看看,为什么垂钓进犯总能成功

当我榜首次收到银行发来的“安全”邮件时,我榜首反响便是这儿是否有诈?由于在我看来,它实在是太像垂钓邮件了。这封躺在收件箱里的邮件来历于我银行司理的个人邮箱地址,而非Chase银行的官方邮箱。邮件中不...

浏览器进犯结构BeEF Part 2:初始化操控

前语 在上一章,笔者现已介绍了BeEF结构。在这一章,笔者将介绍进犯阅读器技能的第一步:初始操控。 阅读器进犯办法流程 进犯阅读器一般分为几个阶段,看下图: 整个进程分为三个过程,第一步是初始化操控,...

网络黑客接单网:世界十大黑客论坛

网络黑客接单网:世界十大黑客论坛

    很多年来,网络黑客的影响力也发生了转变,稍早她们仅仅犯罪嫌疑人,今天有网络黑客为社会事业(网络黑客个人行为现实主义者)工作中,表述被压...

TA505在最新攻击活动中使用HTML, RAT和其他技术-黑客接单平台

TA505以运用歹意垃圾邮件和不同的歹意软件来进犯金融安排和零售企业而臭名远扬。研究人员在曩昔2个月检测到与TA505相关的进犯活动。在该安排的最近活动中,运用了HTML附件来传达歹意XLS文件,XL...

黑客入侵又出新招!丹麦科学研究精英团队探索与发现:不连接网络

黑客入侵又出新招!丹麦科学研究精英团队探索与发现:不连接网络

针对网络黑客而言,沒有她们没法做到,唯有你意想不到。   就算不连接网络,网络黑客运用散热风扇也可以盗取你的数据信息? 前不久,非洲的一个科学研究精...