谷歌kaptcha图片验证码的使用

文章目录

  • 前言
  • 一、引入依赖
  • 二、kaptcha配置
    • 1.配置类
    • 2.接口信息
  • 二、在Swagger中进行测试

前言

验证码可以有效的防止重复提交表单数据,防止来自其他人的恶意攻击,在现代网站中有着广泛的运用,本次我们来使用谷歌kaptcha验证码,为传统4-5位数字+字母类型验证码


提示:以下是本篇文章正文内容,下面案例可供参考

一、引入依赖

、谷歌验证码依赖。

        <!--谷歌验证码依赖--><dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9</version></dependency>

二、kaptcha配置

1.配置类

代码如下(示例):

package com.wql.server.config;import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.Properties;/**配置验证码* Description* User:* Date:* Time:*/
@Configuration
public class CaptchaConfig {@Beanpublic DefaultKaptcha getDefaultKaptcha(){//验证码生成器DefaultKaptcha defaultKaptcha = new DefaultKaptcha();//配置Properties properties = new Properties();//是否有边框properties.setProperty("kaptcha.border", "yes");//设置边框颜色properties.setProperty("kaptcha.border.color", "105,179,90");//边框粗细度,默认为1// properties.setProperty("kaptcha.border.thickness","1");//验证码properties.setProperty("kaptcha.session.key","code");//验证码文本字符颜色 默认为黑色properties.setProperty("kaptcha.textproducer.font.color", "blue");//设置字体样式properties.setProperty("kaptcha.textproducer.font.names", " 宋体,楷体,微软雅黑");//字体大小,默认40properties.setProperty("kaptcha.textproducer.font.size", "30");//验证码文本字符内容范围默认为abced2345678gfynmnpwx// properties.setProperty("kaptcha.textproducer.char.string", "");//字符长度,默认为5properties.setProperty("kaptcha.textproducer.char.length", "4");//字符间距默认为2properties.setProperty("kaptcha.textproducer.char.space", "4");//验证码图片宽度默认为200properties.setProperty("kaptcha.image.width", "100");//验证码图片高度默认为40properties.setProperty("kaptcha.image.height", "40");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

2.接口信息

代码如下(示例):

package com.wql.server.controller;import com.google.code.kaptcha.impl.DefaultKaptcha;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;/**验证码* Description* User:* Date:* Time:*/
@Api(tags = "验证码请求")
@RestController
public class CaptchaController {@Autowiredprivate DefaultKaptcha defaultKaptcha;@ApiOperation("验证码")@GetMapping(value="/captcha",produces = "image/jpeg")public void captcha(HttpServletRequest request,HttpServletResponse response){//定义response输出类型为image/jpeg类型response.setDateHeader("Expires", 0);// Set standard HTTP/1.1 no-cache headers.response.setHeader("Cache-Control", "no-store, no-cache, must revalidate");// Set IE extended HTTP/1.1 no-cache headers (use addHeader).response.addHeader("Cache-Control", "post-check=0, pre-check=0");// Set standard HTTP/1.0 no-cache header.response.setHeader("Pragma", "no-cache");// return a jpegresponse.setContentType("image/jpeg");//---------生成验证码----------//获取验证码文本内容,并将其放入session中进行传输String text = defaultKaptcha.createText();System.out.println("验证码的内容是:"+text);request.getSession().setAttribute("captcha",text);//根据验证码文本内容创建图片BufferedImage bimg = defaultKaptcha.createImage(text);ServletOutputStream out = null;try {out  = response.getOutputStream();ImageIO.write(bimg,"jpg",out);out.flush();} catch (IOException e) {e.printStackTrace();}finally {if(null!=out){try {out.close();} catch (IOException e) {e.printStackTrace();}}}}
}
data = pd.read_csv('https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

二、在Swagger中进行测试

发送验证码请求后:

我们可以看见已经生成了验证码,且为
4pgc

我们在登录中进行测试
首先输入错误的验证码:

测试成功
再输入正确的验证码

测试成功


kaptcha图片验证码相关推荐

  1. Kaptcha图片验证码工具

    阅读文本大概需要3分钟. 验证码的作用 图片验证码自从诞生以来从未被抛弃,依然发出属于它所应有的光.验证码经常验证如下一些场景. 1.用户登录,防止机器人登录 2.论坛留言,防止恶意灌水 3.短信验证 ...

  2. Kaptcha 图片验证码使用

    前言 图验设计初衷就是为了提高系统的安全性,防止有些人利用自动化工具恶意攻击网站,比如批量注册.撞库等,Kaptcha 框架就是现场一个图片验证码工具,简单好上手,我们大可直接使用 使用 1. 添加依 ...

  3. 谷歌kaptcha 图片验证码的使用

    谷歌验证码kaptcha 使用步骤如下: 1.导入谷歌验证码的jar 包 kaptcha-2.3.2.jar 2.在web.xml 中去配置用于生成验证码的Servlet 程序 <servlet ...

  4. 图片验证码的实现-kaptcha

    [注意]:适用与springboot项目 1.加载jar包.由于groupId的不同,图片验证码的样式会有所不同 <!--计算类型的验证码 --><dependency>< ...

  5. 图片验证码kaptcha

    1.效果展示: 2.实现方式 1)引入依赖 <!--验证码--> <dependency><groupId>com.github.axet</groupId& ...

  6. 使用kaptcha生成验证码

    2019独角兽企业重金招聘Python工程师标准>>> kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用k ...

  7. Java Web学习总结(22)——使用kaptcha生成验证码

    kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验. 一.搭建测试环境 ...

  8. 【项目】springboot中使用kaptcha生成验证码,登录时密码加盐处理

    记录使用kaptcha的过程 为前后端分离项目,前端vue框架 文章目录 0.下载jar包 1.添加依赖 2.添加KaptchaConfig配置 3.后端用于登录的封装类编写 4.修改controll ...

  9. 怎样用Java自制优秀的图片验证码?这样!

    Completely Automated Public Turing test to tell Computers and Humans Apart 全自动区分计算机和人类的图灵测试 简称CAPTCH ...

最新文章

  1. 003_Controller和RequestMapping注解
  2. 解决Intellij IDEA部署JavaWeb项目 404问题
  3. Android 须知2019流行的框架库及开发语言
  4. 小程序显示服务器开小差,小程序提交一直显示网络错误,网络开小差,请刷新重试,切换网络也上不去,请问是?...
  5. yum repolist命令
  6. 我和Linux,不得不说的故事
  7. MongoDB数据库练习题
  8. 站在22岁的边上--我的2007
  9. About norms(范数)
  10. Android中连接MQTT服务器实现订阅主题并接收消息推送在通知栏显示(附代码下载)
  11. markman psd
  12. 5分钟搞定敏感词过滤!
  13. C++学习(三九二)-fPIC, -fpic, -fpie, -fPIE
  14. 全球与中国丁苯乳胶市场应用前景及营销渠道分析报告2021~2026年
  15. oracle转trs,TRS数据库数据的导入导出2.doc
  16. java list namevaluepair_HashMap String,String和List NameValuePair之间的区别
  17. 【软件安装】MATLAB R2020a 安装教程
  18. RecyclerView使用GridLayoutManager实现两种item
  19. Linux at 命令C/C++实现 (在指定的时间执行命令)
  20. 如何将QSFP+端口转换为SFP+端口?

热门文章

  1. html classname 多个值,pyquery基础
  2. 目前流行的装修风格_目前装修流行的主要八大风格
  3. php7.0扩展yac,PHP扩展YAC安装过程
  4. 运动耳机哪款稳固性最好、最新的运动蓝牙耳机排行榜
  5. 怪物猎人[贪心+dp]
  6. 北斗公网雨水情监测站“护航”水利数据安全
  7. Python圆面积的计算、简单的人名对话、同切圆的绘制、日期和时间的输出。
  8. 实时监控文本框输入字数
  9. iOS 会呼吸的动画
  10. 关于前端禁用父节点选中问题