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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2022.01.13 idea激活码(注册激活)

    (2022.01.13 idea激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0HKLM1UCCY-eyJsaWNlbnNlSWQiOi…

    2022年3月31日
    182
  • Expand命令_copy命令的用法

    Expand命令_copy命令的用法使用Expand命令行可以在计算机没有安装Windows操作系统的情况下应用批处理文件和脚本:虽然有多个基于Windows的工具可以压缩和解压缩文件(包括WinZip和WinRAR),但是必须有一个可以工作的Windows操作系统才能使用它们。Expand工具用来压缩的WndowsCAB文件中展开文件,并把释放出来的文件保存在磁盘的指定目录内。这个工具通常用来从Windows安装

    2025年6月11日
    0
  • 菜鸟教程 python 正则表达式_python正则表达式使用实例

    菜鸟教程 python 正则表达式_python正则表达式使用实例正则表达式正则表达式(RegularExpression,在代码中常简写为regex、regexp、RE或re)是预先定义好的一个“规则字符率”,通过这个“规则字符串”可以匹配、查找和替换那些

    2022年8月7日
    4
  • apache24+php8配置

    apache24+php8配置电脑下载安装地址:Xampp安装完成后找到里面的apache》config》httpd.config:首先注释掉默认的路径DocumentRoot”D:/software/Xampp/htdocs”;然后再找到IfModuledir_module在后面追加:<IfModuledir_module>DirectoryIndexindex.phpindex.htmlindex.htmdefault.phpdefault.htmldefault.htmhome.

    2022年7月12日
    14
  • js定义点击事件_回字四种写法

    js定义点击事件_回字四种写法嵌入式点击按钮脚本模型btn.onclick=function(){}W3C事件写法添加事件:appEventListener(事件名,事件函数,false)btn.addEventLi

    2022年8月5日
    2
  • md5 java 实现_MD5加密的Java实现

    md5 java 实现_MD5加密的Java实现在各种应用系统中,如果需要设置账户,那么就会涉及到储存用户账户信息的问题,为了保证所储存账户信息的安全,通常会采用MD5加密的方式来,进行储存。首先,简单得介绍一下,什么是MD5加密。MD5的全称是Message-DigestAlgorithm5(信息-摘要算法),在90年代初由MITLaboratoryforComputerScience和RSADataSecurityInc的…

    2022年7月9日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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