Kaptcha 验证码框架使用

Kaptcha 验证码框架使用基于springboot验证码框架kaptcha使用一、统一步骤引入maven坐标<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId>…

大家好,又见面了,我是你们的朋友全栈君。

基于springboot 验证码框架kaptcha使用

一、统一步骤引入maven坐标

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

二、配置验证码生成规则并将框架实现类导入Spring容器

	@Bean
public DefaultKaptcha getDefaultKaptcha() { 

DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
Properties properties = new Properties();
// 图片边框,合法值yes,no,默认值yes
properties.setProperty("kaptcha.border", "no");
// 边框颜色,合法值rgb(and optional alpha)或者 white,black,blue,默认值black
properties.setProperty("kaptcha.border.color", "105,179,90");
// 边框厚度,合法值>0,默认值为1
properties.setProperty("kaptcha.border.color", "2");
// 图片宽度,默认值200
properties.setProperty("kaptcha.image.width", "200");
// 图片高度,默认值50
properties.setProperty("kaptcha.image.height", "50");
// 验证码长度,默认值为5
properties.setProperty("kaptcha.textproducer.char.length", "4");
// 字体,默认值Arial, Courier(如果使用中文验证码,则必须使用中文的字体,否则出现乱码)
properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
// 字体颜色,合法值: r,g,b 或者 white,black,blue,默认值black
properties.setProperty("kaptcha.textproducer.font.color", "black");
// 字体大小,默认值为40px
properties.setProperty("kaptcha.textproducer.font.size", "40");
// 文字间隔,默认值为2
properties.setProperty("kaptcha.textproducer.char.space", "3");
// 干扰 颜色,合法值: r,g,b 或者 white,black,blue,默认值black
properties.setProperty("kaptcha.noise.color", "blue");
// 水纹com.google.code.kaptcha.impl.WaterRipple
// 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
// 阴影com.google.code.kaptcha.impl.ShadowGimpy
properties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.ShadowGimpy");
// 背景颜色渐变,开始颜色,默认值lightGray/192,193,193
properties.setProperty("kaptcha.background.clear.from", "255,255,255");
// 背景颜色渐变, 结束颜色,默认值white
properties.setProperty("kaptcha.background.clear.to", "white");
Config config = new Config(properties);
defaultKaptcha.setConfig(config);
return defaultKaptcha;
}

三、编写controller

@Controller
public class VerifyCodeController { 

@Autowired
DefaultKaptcha defaultKaptcha;
@RequestMapping("/verifyCode")
public void verifyCode(HttpServletResponse httpServletResponse) throws IOException { 

// 获取字符串验证码
String verifyCodeStr = defaultKaptcha.createText();
// 通过字符串验证码生成图片验证码
BufferedImage verifyCodeImage = defaultKaptcha.createImage(verifyCodeStr);
// 设置响应头
httpServletResponse.setHeader("Cache-Control", "no-store");
httpServletResponse.setHeader("Pragma", "no-cache");
httpServletResponse.setContentType("image/jpeg");
ServletOutputStream ops = httpServletResponse.getOutputStream();
// 将验证码写出浏览器
ImageIO.write(verifyCodeImage, "jpg", ops);
}
}

生成的验证码效果:
在这里插入图片描述
四、以下是验证码生成规则配置表。

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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150387.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • NTP协议解析_ntp是安全协议吗

    NTP协议解析_ntp是安全协议吗NTP(NetworkTimeProtocol,网络时间协议)是由RFC1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于运行NTP的本地系统,既可以接收来自

  • 考研数据库系统概论题目整理总结_数据库系统概论pdf

    考研数据库系统概论题目整理总结_数据库系统概论pdf数据库系统概论题目自整理说复试题目过于牵强,只是自己整理的一些知识点而已,为了便于理解和背诵,有些部分定义和说明尽量简明扼要,如有错误请多多指教!(不可转载)1.试述数据、数据库、数据库系统、数据库管理系统的概念。(l)数据(Data):描述事物的符号记录称为数据。数据的含义称为语义,数据与其语义是不可分的。(2)数据库(DataBase,简称DB):若干个相互之间有关联关系的表的集合,表就是关系。数据库中的数据具有永久存储,易扩展,可共享的特点。(3)数据库系统(Data

  • android错误之==与equals的区别

    在做一个电话号码匹配的时候,开始我使用的是这种情况if (num == inCall.getNum()) {//操作…}但是无论如何结果都是false,就算两个号码打印出来一模一样还是false,突然想起来错在哪里了,改成如下if (num.equals(call.getNum())) {//操作…}结果不言而喻,正确了,这就是==和equals的区

  • windows安装 wget

    windows安装 wget下载wget的zip包:https://eternallybored.org/misc/wget/有时好使有时不好使,多试几遍就可以下载完成之后放到windows/system32目录底下打开cmd,输入wget-V可以看到wget安装成功wget命令格式详解:  wget[参数列表][目标软件、网页的网址]  -o,–output-file=FILE将软件输出信息保存到文件  -a,–append-output=FILE将软件输出信息追加到文件  -d,–debug显示输出信息

    2022年10月16日
  • 配置Elasticsearch挂掉后自动重启,ES Service配置

    配置Elasticsearch挂掉后自动重启,ES Service配置elasticsearch.service文件[Unit]Description=elasticsearchDocumentation=http://www.elastic.coWants=network-online.targetAfter=network-online.targetStartLimitIntervalSec=0[Service]LimitMEMLOCK=infinityUser=elasticGroup=elasticLimitNOFILE=65536Limit

  • 【图像处理】计算Haar特征个数

    【图像处理】计算Haar特征个数最早的Haar特征由PapageorgiouC.等提出(《Ageneralframeworkforobjectdetection》),后来PaulViola和MichalJones提出利用积分图像法快速计算Haar特征的方法(《Rapidobjectdetectionusingaboostedcascadeofsimplefeatures》)。之后,Raine

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号