Kaptcha基于Java后端生成验证码

1、导入依赖

     <dependency>
            <groupId>com.github.axet</groupId>
            <artifactId>kaptcha</artifactId>
            <version>0.0.9</version>
        </dependency>

2、配置类,设置验证码的生成属性以及生成对象

@Configuration
public class KaptchaConfig {
    @Bean
    public DefaultKaptcha producer() {
        Properties properties = new Properties();
        properties.put("kaptcha.border", "no");
        properties.put("kaptcha.textproducer.font.color", "black");
        properties.put("kaptcha.textproducer.char.space", "5");
        Config config = new Config(properties);
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}

属性设置大全:

Constant    描述    默认值
kaptcha.border    图片边框,合法值:yes , no    yes
kaptcha.border.color    边框颜色,合法值: r,g,b (and optional alpha) 或者 white,black,blue.    black
kaptcha.border.thickness    边框厚度,合法值:>0    1
kaptcha.image.width    图片宽    200
kaptcha.image.height    图片高    50
kaptcha.producer.impl    图片实现类    com.google.code.kaptcha.impl.DefaultKaptcha
kaptcha.textproducer.impl    文本实现类    com.google.code.kaptcha.text.impl.DefaultTextCreator
kaptcha.textproducer.char.string    文本集合,验证码值从此集合中获取    abcde2345678gfynmnpwx
kaptcha.textproducer.char.length    验证码长度    5
kaptcha.textproducer.font.names    字体    Arial, Courier
kaptcha.textproducer.font.size    字体大小    40px.
kaptcha.textproducer.font.color    字体颜色,合法值: r,g,b  或者 white,black,blue.    black
kaptcha.textproducer.char.space    文字间隔    2
kaptcha.noise.impl    干扰实现类    com.google.code.kaptcha.impl.DefaultNoise
kaptcha.noise.color    干扰 颜色,合法值: r,g,b 或者 white,black,blue.    black
kaptcha.obscurificator.impl    图片样式: 
水纹com.google.code.kaptcha.impl.WaterRipple 
鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
阴影com.google.code.kaptcha.impl.ShadowGimpy    com.google.code.kaptcha.impl.WaterRipple
kaptcha.background.impl    背景实现类    com.google.code.kaptcha.impl.DefaultBackground
kaptcha.background.clear.from    背景颜色渐变,开始颜色    light grey
kaptcha.background.clear.to    背景颜色渐变, 结束颜色    white
kaptcha.word.impl    文字渲染器    com.google.code.kaptcha.text.impl.DefaultWordRenderer
kaptcha.session.key    session key    KAPTCHA_SESSION_KEY
kaptcha.session.date    session date    KAPTCHA_SESSION_DATE


3、验证码后端接口:

@Controller
@RequestMapping("/v1/lo")
public class ver {
    @Autowired
    private Producer producer;
    @RequestMapping("/captcha.jpg")
    public void captcha(HttpServletResponse response)throws ServletException, IOException {
        response.setHeader("Cache-Control", "no-store, no-cache");
        response.setContentType("image/jpeg");

        //生成文字验证码
        String text = producer.createText();
        //生成图片验证码
        BufferedImage image = producer.createImage(text);
        //保存到 session
        
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(image, "jpg", out);
        out.flush();
    }
}

4、测试:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值