Java DefaultKaptcha 生成图形验证码

1.导入依赖


        <dependency>
            <groupId>com.github.penggle</groupId>
            <artifactId>kaptcha</artifactId>
            <version>2.3.2</version>
        </dependency>  

2.配置config

@Configuration
public class KaptchaConfiguration {

    @Bean
    public Producer kaptchaProducer() {
        Properties props = new Properties();
        props.setProperty("kaptcha.border", "no");
        props.setProperty("kaptcha.border.color", "105,179,90");
        props.setProperty("kaptcha.textproducer.font.color", "blue");
        props.setProperty("kaptcha.image.width", "110");
        props.setProperty("kaptcha.image.height", "40");
        props.setProperty("kaptcha.textproducer.font.size", "30");
        props.setProperty("kaptcha.textproducer.char.space", "5");
        props.setProperty("kaptcha.noise.color", "gray");
        props.setProperty("kaptcha.session.key", "code");
        props.setProperty("kaptcha.textproducer.char.length", "4");
        Config config = new Config(props);
        return config.getProducerImpl();
    }
    
}

3.生成图形验证码及存入redis

    @Override
    public String getImageCode(String mobile) {
        Assert.hasText(mobile, "手机号不能为空");
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        try {
            String code = kaptchaProducer.createText();
            BufferedImage imageCode = kaptchaProducer.createImage(code);
            ImageIO.write(imageCode, "jpeg", output);
            redisService.setString(imageCodeKey(mobile), code);
            return new StringBuilder("data:image/jpeg;base64,")
                    .append(Base64.encodeBase64String(output.toByteArray()))
                    .toString();
        } catch (Exception e) {
            throw new BusinessException("图形验证码获取失败:" + e.getMessage());
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值