最近在做一个加减法验证码,记录下实现的过程。

通常Java实现验证码的工具会用到 kaptcha 这个工具包,但实现的验证码都是图形验证码,没有看到加法验证码,查询了相关资料,实现了加减法验证码,效果如图

首先是pom所需要的依赖

com.github.penggle

kaptcha

2.3.2

主要是配置类里面,更改下验证码的字符串,代码如下

/**

* 生成验证码配置

*

* @author hqk

*/

@Configuration

public class KaptchaConfig {

@Bean

public DefaultKaptcha producer() {

Properties properties = new Properties();

properties.put("kaptcha.border", "no");

properties.put("kaptcha.textproducer.font.color", "black");

properties.put("kaptcha.textproducer.char.space", "5");

//如果需要生成算法验证码加上一下配置

properties.put("kaptcha.textproducer.char.string", "1234567890");

//如果需要去掉干扰线

properties.put("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");

Config config = new Config(properties);

DefaultKaptcha defaultKaptcha = new DefaultKaptcha();

defaultKaptcha.setConfig(config);

return defaultKaptcha;

}

}

接下来写个controller实验下,代码如下

/**

*

*

* @author hqk

* @version 1.0: SysLoginController.java v0.1 2019/6/25 上午10:44 hqk Exp$

*/

@RequestMapping("/app/system")

@Controller

public class SysLoginController {

@Resource

private StringRedisTemplate stringRedisTemplate;

@Resource

private Producer producer;

@RequestMapping("number.jpg")

public void number(HttpServletResponse response) throws IOException {

response.setHeader("Cache-Control", "no-store, no-cache");

response.setContentType("image/jpeg");

//生成文字验证码

String text = producer.createText();

//个位数字相加

String s1 = text.substring(0, 1);

String s2 = text.substring(1, 2);

int count = Integer.valueOf(s1).intValue() + Integer.valueOf(s2).intValue();

//生成图片验证码

BufferedImage image = producer.createImage(s1 + "+" + s2 + "=?");

//保存 redis key 自己设置

//stringRedisTemplate.opsForValue().set("",String.valueOf(count));

ServletOutputStream out = response.getOutputStream();

ImageIO.write(image, "jpg", out);

}

}

好了,java实现加法验证码就实现了

代码git地址: https://github.com/qiankunhu/springbootdemo  git@github.com:qiankunhu/springbootdemo.git

推荐一下我自己的前端学习群562862926,里面有大神总结的一套前端教学视频,欢迎有兴趣的朋友进群一起学习

java加减法验证码_Java,Springboot 实现算法验证码加减法图形验证码,Kaptcha 实现加减法验证码...相关推荐

  1. java数据结构 队列_Java数据结构与算法[原创]——队列

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本文介绍数据结构中的队列(queue)的概念.存储结构.队列的特点,文末给出ja ...

  2. java 性能 排序_Java常用排序算法及性能测试集合

    package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...

  3. java setlt;intgt;_java使用Nagao算法实现新词发现、热门词的挖掘

    采用Nagao算法统计各个子字符串的频次,然后基于这些频次统计每个字符串的词频.左右邻个数.左右熵.交互信息(内部凝聚度). 名词解释: Nagao算法:一种快速的统计文本里所有子字符串频次的算法.详 ...

  4. java遍历字符串_Java后端开发算法基础面试题分享,你离大厂也许就差这份面试题

    一.算法基础 1. 重建二叉树 题目: 输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树. 注意: 二叉树中每个节点的值都互不相同: 输入的前序遍历和中序遍历一定合法: 演示: 给定: 前序遍历 ...

  5. java spring 数据库_JAVA - SpringBoot项目引用MyBatis操作数据库

    JAVA - SpringBoot项目引用MyBatis操作数据库 添加POM依赖: org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1 ...

  6. java 商品评价_java 商品评价计算算法

    importjava.io.Serializable;importjava.lang.ref.ReferenceQueue;importjava.lang.ref.WeakReference;impo ...

  7. java路由分发_Java Springboot 整合RabbitMQ(四):路由(Routing)-B2B2C小程序电子商务...

    在本文中,我们将实现另一个功能 -- 只订阅一部分消息.例如,我们只需要把严重的错误日志信息写入日志文件(存储到磁盘),但同时仍然把所有的日志信息输出到控制台中 绑定(Binding) 在之前的例子中 ...

  8. bom展开算法 java程序实现_java实现aprior算法

    /** * 频繁项集 */ public class FrequentNode { //包含哪些项 private String[] subjects; //几项集 private int k; // ...

  9. Java基础类冒泡排序_Java基础 -- 冒泡排序算法(带详细注释)

    冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...

最新文章

  1. Django源码分析6:auth认证及登陆保持
  2. mysqlbinlog flashback 使用最佳实践
  3. python manager是进程安全的么_Python在进程之间共享锁
  4. 实战经验:如何定位控制文件热点块,即读取延迟高的块所在的ASM磁盘
  5. STL中的next_permutation
  6. 搭建Discuz论坛的两种方式
  7. 手把手带你了解安卓Unity3D手游
  8. 计算机二级C语言考试题库软件
  9. 第五章 编码/加密——《跟我学Shiro》[张开涛]
  10. hp6960无法连接计算机,惠普6960驱动
  11. 全球及中国基因组学软件行业发展动态及前景趋势预测报告(2022-2027)
  12. 联通loid认证_光纤LOID 认证 需要填写的用户名是什么?有人说不需要填写密码。为什么我每次认证都是超时?...
  13. windows bat脚本实现ftp自动下载 删除
  14. Rust use of undeclared crate or module和maybe a missing crate?
  15. 吴军博士系列书籍读后感(《数学之美》、《浪潮之巅》、《文明之光》、《智能时代》)
  16. 200多条影响谷歌SEO排名的因素大全
  17. 新房怎么做到全屋网络覆盖?
  18. git 提交代码某个文件夹一直提交不上去
  19. 安全加密 - 安全认证 EAL,CC
  20. 您玩儿转手机通讯录了吗?

热门文章

  1. Rosalind Python|Inferring mRNA from Protein
  2. python照片转彩色手绘_Python 批量转化彩色图片为黑白图片
  3. 立创梁山派学习笔记——GPIO输出控制
  4. UI设计师如何应对面试 哪些细节问题不可忽视
  5. IDM2022最新版极速下载工具
  6. 如何高效的上传大文件?
  7. apache中配置404错误页的方法
  8. JS之数据结构与算法
  9. python爬取微博内容_Python 爬虫如何机器登录新浪微博并抓取内容?
  10. HTML常用标签 选择器