SpringBoot 整合 kaptcha实现验证码
前言
谈起验证码这个话题,相信大家应该都很熟悉,在日常上网的时候经常会看到验证码的逻辑设计,比如登陆账号、论坛发帖、购买商品时网站都会要求用户在实际操作之前去输入验证码,验证码的生成规则或者展现形式也各不相同,但是这个设计确实已经存在于各大网站中,以下是百度百科中对它的定义:
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell
Computers and Humans
Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
简单的介绍完验证码之后,接下来,我们还是通过一个案例来讲解如何使用 Spring Boot 来生成验证码,之后我们再对验证码的显示以及后端验证进行案例讲解。
一、添加依赖
<!-- 验证码 -->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
二、配置
注册 DefaultKaptcha 到 IOC 容器中,新建 config 包,之后新建 KaptchaConfig 类,内容如下:
@Component
public class KaptchaConfig {
@Bean
public DefaultKaptcha getDefaultKaptcha(){
DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
Properties properties = new Properties();
properties.put("kaptcha.border", "no");
properties.put("kaptcha.textproducer.font.color", "black");
properties.put("kaptcha.image.width", "150");
properties.put("kaptcha.image.height", "40");
properties.put("kaptcha.textproducer.font.size", "30");
propert