HappyCaptcha 验证码生成以及验证

1. HappyCaptcha 说明

Happy Captcha是一款易于使用的Java验证码软件包,旨在花最短的时间,最少的代码量,实现Web站点的验证码功能。

2. HappyCaptcha pom引入

<dependency>
  <groupId>com.ramostear</groupId>
  <artifactId>Happy-Captcha</artifactId>
  <version>1.0.1</version>
</dependency>

3. HappyCaptcha 验证码生成以及验证

package com.test.execption.controller;

import com.ramostear.captcha.HappyCaptcha;
import com.test.execption.exception.TokenCheck;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 类描述:验证码生成
 *
 * @author admin
 * @date 2023-01-02 16:00
 **/

@RestController
@RequestMapping(value = "happy-captcha")
public class HappyCaptchaController {

    /**
     * 验证码生成
     * @param request
     * @param response
     */
    @GetMapping(value = "generator")
    @TokenCheck(required = false)
    public void generatorCode(HttpServletRequest request, HttpServletResponse response){
        HappyCaptcha.require(request,response).build().finish();

    }

    /**
     * 验证码验证
     * @param verifyCode
     * @param request
     * @return
     */
    @GetMapping(value = "verify")
    public String verify(String verifyCode, HttpServletRequest request){
        Boolean aBoolean = HappyCaptcha.verification(request,verifyCode,true);
        if (aBoolean){
            HappyCaptcha.remove(request);
            return "通过";
        }

        return "不通过";
    }


    /**
     * 验证码验证
     * @param verifyCode
     * @param request
     * @return
     */
    @GetMapping(value = "remove")
    public String remove(String verifyCode, HttpServletRequest request){
        Boolean aBoolean = HappyCaptcha.verification(request,verifyCode,true);
        //清除验证码
        HappyCaptcha.remove(request);
        if (aBoolean){
            HappyCaptcha.remove(request);
            return "通过";
        }

        return "不通过";
    }
}


4. HappyCaptcha 高级特性

4.1 style()

HappyCaptcha提供两种验证码展现形式:图片和动画。默认的展现形式为图片,可以通过style()方法修改默认值。style()方法的值由CaptchaStyle类提供,可供选择的值有IMG和ANIM。style()使用示例如下:

HappyCaptcha.require(request,response)
    	    .style(CaptchaStyle.ANIM)
            .build().finish(); 

4.2 type()

HappyCaptcha一共提供了12种验证码类型,你可以自由选择其中的一种类型作为验证码的内容形式。默认情况下,验证码使用数字和大小写字母的混合形式。验证码类型值由CaptchaType类提供,内容如下表:

说明
centered 文本居中right-aligned 文本居右
DEFAULT数字、大小写字母随机组合
ARITHMETIC加、减、乘算数运算表达式
ARITHMETIC_ZH中文简体加、减、乘算数运算表达式描述
CHINESE常见汉字(3500个)随机组合
NUMBER0~9数字随机组合
NUMBER_ZH_CN中文数字(零至九)随机组合
NUMBER_ZH_HK中文繁体数字(零至玖)随机组合
WORD大小写字母随机组合
WORD_LOWER小写字母随机组合
WORD_UPPER大写字母随机组合
WORD_NUMBER_LOWER数字、小写字母随机组合
WORD_NUMBER_UPPER数字、大写字母随机组合

type()使用示例如下:

HappyCaptcha.require(request,response)
    		.type(CaptchaType.CHINESE)
    		.build().finish();

4.3 length()

length()方法用于设置验证码字符长度,默认情况下缺省值为5。你可以通过以下方式对验证码字符长度进行控制:

HappyCaptcha.require(request,response)
    		.length(6)
    		.build().finish();

4.4 width()

width()方法可对验证码图片的宽度进行调节,默认的缺省值为160。使用方式如下:

HappyCaptcha.require(request,response)
    		.width(180)
    		.build().finish();

4.5 height()

同width()方法一样,height()方法用于设置验证码图片的高度,默认缺省值为50。使用方式如下:

HappyCaptcha.require(request,response)
    		.height(60)
    		.build().finish();

4.6 font()

如果你想改变验证码的字体,可通过font()方法进行设置,默认缺省字体为微软雅黑。HappyCaptcha内置了四种字体,可以通过Fonts类进行调用。

HappyCaptcha.require(request,response)
    		.font(Fonts.getInstance().zhFont())
    		.build().finish();

4.7 链式调用

上面介绍了如何修改单个配置,HappyCaptcha支持链式调用,可同时对验证码的多个属性进行设置。例如:

@GetMapping("/captcha")
public void captcha(HttpServletRequest req,HttpServletResponse res){
    HappyCaptcha.require(req,res)
        		.style(CaptchaStyle.ANIM)			//设置展现样式为动画
        		.type(CaptchaType.CHINESE)			//设置验证码内容为汉字
        		.length(6)							//设置字符长度为6
        		.width(220)							//设置动画宽度为220
        		.height(80)							//设置动画高度为80
        		.font(Fonts.getInstance().zhFont())	//设置汉字的字体
        		.build().finish();      			//生成并输出验证码
}

若验证码的类型为ARITHMETIC或ARITHMETIC_ZH,可省略验证码长度的设置。算术运算表达式的长度为5。

源码地址

github 验证码源码

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Happy Captcha简易验证码是一款易于使用的Java验证码软件包,旨在花最短的时间,最少的代码量,实现Web站点的验证码功能。 Happy Captcha简易验证码提供了图片和动画两种展现形式,验证码内容包括中文(收录3500个常用汉字),阿拉伯数字(09),中文数字(零至九),中文大写数字(零至玖),数字与字母混合(09-az-AZ),数字与小写字母混合(09-az),数字与大写字母混合(09-AZ),纯小写字母,纯大写字母,大小写字母混合以及运算表达式(阿拉伯数字运算表达式和中文运算表达式)等12种类型。 Happy Captcha简易验证码完全遵循Apache 2.0开源许可协议,你可以自由使用该软件,如您在使用Happy Captcha时发现软件的任何缺陷,欢迎随时与作者联系。 Happy Captcha简易验证码安装: 如果你的项目使用的是Maven进行依赖管理,你只需向pom.xml文件添加下面的配置即可:     com.ramostear   Happy-Captcha   1.0.1   Gradle用户则可以通过引入如下的配置获取Happy Captcha: implementation 'com.ramostear:Happy-Captcha:1.0.1' Happy Captcha简易验证码使用: HappyCaptcha在设计时力求过程的简洁,在默认情况下,你只需要书写一行代码即可生成漂亮的验证码图片。下面是HappyCaptcha的使用示例: @Controller public class HappyCaptchaController{     @GetMapping("/captcha")     public void happyCaptcha(HttpServletRequest request,HttpServletResponse response){         HappyCaptcha.require(request,response).build().finish();     } } 对于HappyCaptcha而言,只有request和response是必须提供的参数,其余参数都可以使用缺省值。 在默认情况下,HappyCaptcha生成验证码以图片形式展现,内容为09-az-A~Z的字符随机组合,字符长度为5,图片宽度为160,高度为50,字体为微软雅黑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无奈的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值