为了账号安全,请及时绑定邮箱和手机立即绑定

Kaptcha 变种验证码一键攻破

标签:
Java

想必很多人是见过的,大名鼎鼎的Google Kaptcha,网上有许多此类验证码的变种,如图1、图2、图3等等。根据参数不同,千变万化,而验证码识别的首要困难是训练集,大多数公司是不愿意在训练上面花钱打码的,那么生成算法有了,是否可以生成无限的参数,无限的训练集呢,最后一举攻破Kaptcha所有的变种,当然这是可以实现的,Kaptcha训练集批量生成工具,笔者也只能帮你们到这里了。

webp

图1

webp

图2

webp

图3

为了方便,在下封装了Kaptcha,只要两个参数,便可批量生成训练集:

  1. 输出路径

  2. 输出数目

java -jar kaptcha.jar 输出路径 输出数目

如图4所示:


webp

图4

结果如下:


webp

图5

是不是很方便呢,那么又如何配置其变化呢,这里祭出配置文件样例:
captcha.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties>
    <comment>Temporary Properties</comment>
    <!-- 图片边框,合法值yes,no,默认值yes -->
    <entry key="kaptcha.border">no</entry>
    <!-- 边框颜色,合法值rgb(and optional alpha)或者 white,black,blue,默认值black -->
    <entry key="kaptcha.border.color">blue</entry>
    <!-- 边框厚度,合法值>0,默认值为1 -->
    <entry key="kaptcha.border.thickness">2</entry>
    <!-- 图片宽度,默认值200 -->
    <entry key="kaptcha.image.width">200</entry>
    <!-- 图片高度,默认值50 -->
    <entry key="kaptcha.image.height">50</entry>
    <!-- 图片实现类,默认值priv.kerlomz.kaptcha.impl.DefaultKaptcha -->
    <entry key="kaptcha.producer.impl">priv.kerlomz.kaptcha.impl.DefaultKaptcha</entry>
    <!-- 文本实现类,默认值priv.kerlomz.kaptcha.impl.DefaultTextCreator -->
    <entry key="kaptcha.textproducer.impl">priv.kerlomz.kaptcha.text.impl.DefaultTextCreator</entry>
    <!-- 文本集合,验证码值从此集合中获取,默认值abcde2345678gfynmnpwx -->
    <entry key="kaptcha.textproducer.char.string">abcde2345678gfynmnpwx</entry>
    <!-- 验证码长度,默认值为5 -->
    <entry key="kaptcha.textproducer.char.length">5</entry>
    <!-- 字体,默认值Arial, Courier(如果使用中文验证码,则必须使用中文的字体,否则出现乱码) -->
    <entry key="kaptcha.textproducer.font.names">Arial</entry>
    <!-- 字体大小,默认值为40px -->
    <entry key="kaptcha.textproducer.font.size">40</entry>
    <!-- 字体颜色,合法值: r,g,b 或者 white,black,blue,默认值black -->
    <entry key="kaptcha.textproducer.font.color">black</entry>
    <!-- 文字间隔,默认值为2 -->
    <entry key="kaptcha.textproducer.char.space">2</entry>
    <!-- 干扰实现类,默认值priv.kerlomz.kaptcha.impl.DefaultNoise -->
    <entry key="kaptcha.noise.impl">priv.kerlomz.kaptcha.impl.DefaultNoise</entry>
    <!-- 干扰 颜色,合法值: r,g,b 或者 white,black,blue,默认值black -->
    <entry key="kaptcha.noise.color">black</entry>
    <!-- 图片样式: 
         水纹 priv.kerlomz.kaptcha.impl.WaterRipple 
         鱼眼 priv.kerlomz.kaptcha.impl.FishEyeGimpy
         阴影 priv.kerlomz.kaptcha.impl.ShadowGimpy, 默认值水纹    
    -->
    <entry key="kaptcha.obscurificator.impl">priv.kerlomz.kaptcha.impl.WaterRipple</entry>
    <!-- 背景实现类,默认值priv.kerlomz.kaptcha.impl.DefaultBackground -->
    <entry key="kaptcha.background.impl">priv.kerlomz.kaptcha.impl.DefaultBackground</entry>
    <!-- 背景颜色渐变,开始颜色,默认值lightGray/192,193,193 -->
    <entry key="kaptcha.background.clear.from">255,255,255</entry>
    <!-- 背景颜色渐变, 结束颜色,默认值white -->
    <entry key="kaptcha.background.clear.to">white</entry>
    <!-- 文字渲染器,默认值priv.kerlomz.kaptcha.text.impl.DefaultWordRenderer -->
    <entry key="kaptcha.word.impl">priv.kerlomz.kaptcha.text.impl.DefaultWordRenderer</entry></properties>



作者:_Coriander
链接:https://www.jianshu.com/p/373845befaf0


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消