验证码破解没有训练集?我教你生成一万个!

简介: 验证码破解没有训练集?我教你生成一万个!

前言

对于验证码破解,我在去年写过一篇文章我深度学习0基础,还训练出一个识别验证码模型!,并且把代码放在GitHub上,GitHub地址大家就直接访问前面那篇文章就知道了。最近有些GitHub上过来的小伙伴问我各种各样的问题,其中有一个就是如何生成训练所需要的数据集,这里也就是指验证码。

第一想到的就是通过一些类库生成与需要破解的验证码类似的数量级,当然这会花费你一定的时间。今天我给大家推荐一个python生成验证码的第三方库,并且我们来生成自己的数据集。


captcha

下载:


pip install captcha


如何生成验证码呢?我直接给大家上代码:


from captcha.image import ImageCaptcha
import random
list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
# 定义验证码尺寸
width, height = 170, 80
#生成一万张验证码
for i in range(10000):
    generator = ImageCaptcha(width=width, height=height)
    # 从list中取出4个字符
    random_str = ''.join([random.choice(list) for j in range(4)])
    # 生成验证码
    img = generator.generate_image(random_str)
    # 在验证码上加干扰点
    generator.create_noise_dots(img, '#000000', 4, 40)
    # 在验证码上加干扰线
    generator.create_noise_curve(img, '#000000')
    # 将图片保存在目录yzm文件夹下
    file_name = './yzm/'+random_str+'_'+str(i)+'.jpg'
    img.save(file_name)


关于每一句代码的意思,我都写在注释里了,所以这里不会过多的阐述。不过上面的ImageCaptcha还可以定义一些参数:


1.jpg


从源码中我们可以看到还可以定义字体、字体大小,当然这个根据你所要破解的验证码来决定。最后大家看下我生成的验证码照片:


2.jpg


3.jpg


总结

其实大家可以发现python的这个库并没有想象的那么强大,这里我要给大家推荐另一个库,只不过它不是python的,而是Java的,它所能设置的参数更加的详细。如果本文超过20在看,下篇文章我将详细的给大家介绍。有关于验证码训练的教程,看我我深度学习0基础,还训练出一个识别验证码模型!这篇文章。

相关文章
|
存储 移动开发 前端开发
分享138个HTML公司企业模板,总有一款适合您
分享138个HTML公司企业模板,总有一款适合您
203 0
|
机器学习/深度学习 人工智能 Java
验证码破解全流程实战
验证码破解全流程实战
759 0
验证码破解全流程实战
|
小程序 网络安全 Windows
swoole(二)ws与wss的区别
关于ws与wss的区别这里简单的说一下我目前的见解。 如果你有更多的见解欢迎在下方留言讨论。 最简单的理解就是: 服务器上服务端用的是:websocket协议(支持客户端的ws访问) 服务器上服务端用的是:websocket协议+TLS(支持客户端的wss访问) 客户端上用的是: ws协议或者wss协议 Wss与ws其实就和http与https的关系,wss需要验证域名证书,ws不需要验证域名证书。 这个其实都不重要。我们在开发的时候关系不是很大。 下边的才是我要说的重点: Ws链接可以使用IP+端口号的形式访问。 Wss链接只能使用域名的形式访问,因为服务器端需要通过域名来找对应的ssl证书
1146 0
|
开发工具 Android开发 Windows
Android sdk下载安装配置教程
Android sdk下载安装配置教程
Android sdk下载安装配置教程
|
7月前
|
机器学习/深度学习 存储 算法
DistilQwen2.5发布:通义千问蒸馏小模型再升级
为解决大语言模型在资源有限环境下的高计算成本和复杂性问题,阿里云推出了基于 Qwen2.5 的轻量化模型系列 DistilQwen2.5。该模型通过双层蒸馏框架、数据优化策略及参数融合技术,在保留性能的同时显著降低计算资源消耗。本文提供了详细的使用教程和代码示例,方便用户在 PAI 平台上调用。
|
10月前
|
Java Android开发
如何确定抛出`NoSuchFieldError`异常的字段
当Java程序运行时,如果尝试访问一个不存在的字段,就会抛出`NoSuchFieldError`异常。要确定引发此异常的字段,可以通过检查异常堆栈跟踪中的类名和字段名来定位问题所在。此外,确保所使用的类版本一致,避免因类文件不匹配导致的此类错误。
496 8
|
11月前
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
327 7
|
安全 Unix 物联网
操作系统的演变与技术革新
在这篇文章中,我们将探索操作系统(OS)的发展历程,从早期的批处理系统到现代的多任务操作系统。文章将揭示技术创新如何推动操作系统的进步,并讨论这些进步如何影响我们的日常生活和工作方式。通过深入浅出的分析,我们将了解不同代的操作系统背后的设计哲学,以及它们是如何应对不断增长的性能需求和安全挑战的。本文旨在为读者提供操作系统发展的宏观视角,同时指出未来可能的技术趋势。
228 2
|
存储 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【8月更文挑战第19天】如果Edge浏览器提示“此网站已被人举报不安全”,首先确认网站可信度及安全证书有效性,避免访问可疑网站。检查浏览器是否需要更新,并确保自动更新功能已开启。可暂时关闭Microsoft Defender SmartScreen(不建议长期关闭),清除缓存和Cookies,或检查第三方安全软件设置。若问题持续,考虑重置Edge浏览器设置,保留重要数据。如仍无法解决,联系网站管理员或微软支持。
2390 7
|
安全 数据安全/隐私保护
同态加密含义以及应用场景
文章探讨了同态加密技术的含义、发展历程、技术路线以及在安全求交、隐匿查询、多方联合计算和建模等隐私计算场景中的应用,并分析了其在实际应用中面临的关键问题和研究发展方向,同时指出了同态加密可能导致的计算精度损失和效率降低。
1155 0
同态加密含义以及应用场景

热门文章

最新文章