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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 手机端自动播放网页背景音乐代码怎么设置_背景音乐自动播放

    手机端自动播放网页背景音乐代码怎么设置_背景音乐自动播放特别声明:在页面标签中必须使用标签方有效。functiontoggleSound(){varmusic=document.getElementById(“vd”);//获取ID  console.log(music);if(music.paused){//判读是否播放  music.play();//没有就播放  }  }

    2022年9月1日
  • javascript飞机大战游戏_javascript游戏开发

    javascript飞机大战游戏_javascript游戏开发系列目录1.JavaScript贪吃蛇游戏2.JavaScript俄罗斯方块3.JavaScript扫雷小游戏4.JavaScript网红太空人表盘引言:之前我有用Java写过一个飞机大战,感觉挺受欢迎的,有的小伙伴想用Javasript写,我这次就按我的思路写了一个版本。实现思路分2张画布来实现,画布1仅仅用来绘制背景图,画布2用来绘制游戏相关的动态内容。创建我方飞机定时创建敌机开启主线程,用来刷新画布2.代码实现编写页面<!DOCTYPEhtml&

    2022年8月12日
  • python用vscode还是pycharm_菜鸟VS高手

    python用vscode还是pycharm_菜鸟VS高手点击“开发者技术前线”,选择“星标????”在看|星标|留言,真爱作者|SohaibAhmad译者|鹿未来,责编|屠敏也许是我有些落伍,或者也是因为JetBrains…

    2022年8月28日
  • MFC进度条编程「建议收藏」

    MFC进度条编程「建议收藏」1.进度条的主要功能进度条控制(ProgressControl)主要用来进行数据读写、文件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等,伴随工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。进度条控制在MFC类库中的封装类为CProgressCtrl,通常仅作为输出类控制,所以其操作主要是设置进度条的范围和当前位置,并不断地更新当前位置。进度条的范

    2022年7月12日
  • 外链图床-PicGo-Gitee

    外链图床-PicGo-Gitee前言刚开始写建立博客的时候,头疼过图片该如何处理:直接放github的仓库里吧。可是随着图片越来越多,每次pull、clone都需要耗费大量的时间。而且github的仓库加载很慢,影响博客的流畅性。外链图床吧。可是国内基本上没有什么好用的免费图床,七牛云之类的都需要收费的。国外的图床加载速度又是特别的慢。自己搭建。图床搭建所使用的工具为PicGo、Gitee、Typora.在这之前,我一般在VSCode上面写Markdown文档,但是现在开始添加图片到博客中去,转而使用Typora,以便

    2022年6月21日
  • 根据调试工具看Vue源码之生命周期(一)

    根据调试工具看Vue源码之生命周期(一)

    2021年6月29日

发表回复

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

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