Happy Captcha:一个只需要一行代码即可拥有24种类型验证码的Java开源软件【 V 1.0.1图文教程】

    


前言

Happy Captcha是一款易于使用的Java验证码软件包,旨在花最短的时间,最少的代码量,实现Web站点的验证码功能。Happy Captcha完全遵循Apache 2.0开源许可协议,你可以自由使用该软件,如您在使用Happy Captcha时发现软件的任何缺陷,欢迎随时与我联系。

Happy Capthca的源代码已托管到Github和Gitee,你可以访问下面的链接获取更多信息:

如果你想快速体验Happy Captcha的功能,可通过下列方式获取Happy-Captcha依赖:

Maven

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

Gradle

implementation 'com.ramostear:Happy-Captcha:1.0.1'

一、展示

Happy Captcha提供了图片和动画两种展现形式,验证码内容包括中文(收录3500个常用汉字),阿拉伯数字(0~9),中文数字(零至九),中文大写数字(零至玖),数字与字母混合(0~9-a~z-A~Z),数字与小写字母混合(0~9-a~z),数字与大写字母混合(0~9-A~Z),纯小写字母,纯大写字母,大小写字母混合以及运算表达式(阿拉伯数字运算表达式和中文运算表达式)等12种类型。

CaptchaTypeIMAGEANIMATION
CHINESE
NUMBER
NUMBER_ZH_CN
NUMBER_ZH_HK
DEFAULT
WORD
WORD_LOWER
WORD_UPPER
WORD_NUMBER_LOWER
WORD_NUMBER_UPPER
ARITHMETIC
ARITHMETIC_ZH

二、安装

如果你的项目使用的是Maven进行依赖管理,你只需向pom.xml文件添加下面的配置即可:

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

Gradle用户则可以通过引入如下的配置获取Happy Captcha:

implementation 'com.ramostear:Happy-Captcha:1.0.1'

三、使用

HappyCaptcha在设计时力求过程的简洁,在默认情况下,你只需要书写一行代码即可生成漂亮的验证码图片。下面是HappyCaptcha的使用示例:

@Controller
public class HappyCaptchaController{
    @GetMapping("/captcha")
    public void happyCaptcha(HttpServletRequest reqeust,HttpServletResponse response){
        HappyCaptcha.require(request,response).build().finish();
    }
}

对于HappyCaptcha而言,只有request和response是必须提供的参数,其余参数都可以使用缺省值。

在默认情况下,HappyCaptcha生成的验证码以图片形式展现,内容为0~9-a~z-A~Z的字符随机组合,字符长度为5,图片宽度为160,高度为50,字体为微软雅黑。

四、校验

用户输入的验证码校验是一个必不可少的环节,HappyCaptcha内置了对用户输入的验证码校验功能。下面是验证码校验示例:

@Controller
public class CaptchaController{

    @PostMapping("/verify")
    public String verify(String code,HttpServletRequest request){
        //Verification Captcha
        boolean flag = HappyCaptcha.verification(request,code,true);
        if(flag){
            //Other operations...
        }
    }
}

如果在校验过程中需要忽略字母大小写,第三个参数设置为true,如果需要强校验,则设置为false。

五、清理

当验证码被使用后,你可以通过HappyCaptcha类种的remove()方法将Session中存放的验证码清理掉。下面是清理验证码的代码示例:

@Controller
public class HappyCaptchaController{

    @GetMapping("/remove/captcha")
    public void removeCaptcha(HttpServletRequest request){
         HappyCaptcha.remove(request);   
    }
}

除HappyCaptcha提供的默认方法,你也可以在需要操作的地方,手动清理Session中存放的验证码,HappyCaptcha验证码的Key为“happy-captcha”。

六、高级特性

通过前面的内容,我们已经了解到如何快熟的安装并使用HappyCaptcha生成验证码。在接下的内容当中,将介绍HappyCaptcha更详细的内容。

6.1 style()

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

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

若展现形式为图片,则style(CaptchaStyle.IMG)可以省略。

6.2 type()

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

说明
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();

6.3 length()

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

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

6.4 width()

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

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

6.5 height()

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

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

6.6 font()

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

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

6.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。

结束语

Happy Captcha参考了一些优秀的验证码框架设计,同时引用了一些第三方的编码类,在此统一表示感谢!如果你觉得Happy Captcha对你有所帮助,请转到Github或Gitee点个赞吧~~~~,更多详细信息请移步:https://www.ramostear.com/blog/2020/05/17/3yxqwse4.html

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,字体为微软雅黑。
### 回答1: public class VerificationCode { public static void main(String[] args) { //生成6位随机字符串 String code = ""; for(int i=0;i<6;i++) { char c = (char)(Math.random()*26+'A'); code += c; } System.out.println("验证码为:"+code); } } ### 回答2: 以下是一个使用Java代码编写的生成验证码的功能: ```java import java.util.Random; public class CaptchaGenerator { private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; private static final int CAPTCHA_LENGTH = 6; public static String generateCaptcha() { StringBuilder captcha = new StringBuilder(); Random random = new Random(); for (int i = 0; i < CAPTCHA_LENGTH; i++) { int index = random.nextInt(CHARACTERS.length()); captcha.append(CHARACTERS.charAt(index)); } return captcha.toString(); } public static void main(String[] args) { String captcha = generateCaptcha(); System.out.println("生成的验证码为: " + captcha); } } ``` 这个生成验证码的功能使用了一个字符集和验证码长度常量。在generateCaptcha方法中,首先创建一个StringBuilder对象,然后使用Random类来随机生成一个指定范围内的索引,根据这个索引从字符集中选择一个字符,将它追加到字符串中。循环重复以上步骤,直到达到指定的验证码长度。最后返回生成的验证码字符串。 在main方法中,调用generateCaptcha方法生成验证码,并打印在控制台上。 ### 回答3: 以下是一个使用Java编写的生成验证码的功能的示例源码: ```java import java.util.Random; public class VerificationCodeGenerator { public static void main(String[] args) { String verificationCode = generateVerificationCode(6); // 生成6位验证码 System.out.println("验证码:" + verificationCode); } // 生成指定长度的验证码 public static String generateVerificationCode(int length) { String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; StringBuilder verificationCode = new StringBuilder(); Random random = new Random(); for (int i = 0; i < length; i++) { int index = random.nextInt(characters.length()); verificationCode.append(characters.charAt(index)); } return verificationCode.toString(); } } ``` 上述代码中,我们定义了一个名为`VerificationCodeGenerator`的类。在该类中,我们提供了一个静态方法`generateVerificationCode`,用于生成指定长度的验证码。该方法接受一个整数参数`length`,表示验证码的长度。在方法内部,我们定义了一个包含所有可能字符的字符串`characters`,并创建一个`StringBuilder`对象`verificationCode`用于保存生成的验证码。 通过使用`java.util.Random`类可以生成随机数。我们使用`Random`类的`nextInt`方法生成一个随机的索引值,然后使用该索引从`characters`字符串中获取对应字符,并将其添加到`verificationCode`中。重复这一过程直到生成指定长度的验证码。 在`main`方法中,我们调用`generateVerificationCode`方法生成一个长度为6的验证码,并将其打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值