java加减法验证码_Java,Springboot 实现算法验证码加减法图形验证码,Kaptcha 实现加减法验证码...
最近在做一个加减法验证码,记录下实现的过程。
通常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 实现加减法验证码...相关推荐
- java数据结构 队列_Java数据结构与算法[原创]——队列
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本文介绍数据结构中的队列(queue)的概念.存储结构.队列的特点,文末给出ja ...
- java 性能 排序_Java常用排序算法及性能测试集合
package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...
- java setlt;intgt;_java使用Nagao算法实现新词发现、热门词的挖掘
采用Nagao算法统计各个子字符串的频次,然后基于这些频次统计每个字符串的词频.左右邻个数.左右熵.交互信息(内部凝聚度). 名词解释: Nagao算法:一种快速的统计文本里所有子字符串频次的算法.详 ...
- java遍历字符串_Java后端开发算法基础面试题分享,你离大厂也许就差这份面试题
一.算法基础 1. 重建二叉树 题目: 输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树. 注意: 二叉树中每个节点的值都互不相同: 输入的前序遍历和中序遍历一定合法: 演示: 给定: 前序遍历 ...
- java spring 数据库_JAVA - SpringBoot项目引用MyBatis操作数据库
JAVA - SpringBoot项目引用MyBatis操作数据库 添加POM依赖: org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1 ...
- java 商品评价_java 商品评价计算算法
importjava.io.Serializable;importjava.lang.ref.ReferenceQueue;importjava.lang.ref.WeakReference;impo ...
- java路由分发_Java Springboot 整合RabbitMQ(四):路由(Routing)-B2B2C小程序电子商务...
在本文中,我们将实现另一个功能 -- 只订阅一部分消息.例如,我们只需要把严重的错误日志信息写入日志文件(存储到磁盘),但同时仍然把所有的日志信息输出到控制台中 绑定(Binding) 在之前的例子中 ...
- bom展开算法 java程序实现_java实现aprior算法
/** * 频繁项集 */ public class FrequentNode { //包含哪些项 private String[] subjects; //几项集 private int k; // ...
- Java基础类冒泡排序_Java基础 -- 冒泡排序算法(带详细注释)
冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...
最新文章
- Django源码分析6:auth认证及登陆保持
- mysqlbinlog flashback 使用最佳实践
- python manager是进程安全的么_Python在进程之间共享锁
- 实战经验:如何定位控制文件热点块,即读取延迟高的块所在的ASM磁盘
- STL中的next_permutation
- 搭建Discuz论坛的两种方式
- 手把手带你了解安卓Unity3D手游
- 计算机二级C语言考试题库软件
- 第五章 编码/加密——《跟我学Shiro》[张开涛]
- hp6960无法连接计算机,惠普6960驱动
- 全球及中国基因组学软件行业发展动态及前景趋势预测报告(2022-2027)
- 联通loid认证_光纤LOID 认证 需要填写的用户名是什么?有人说不需要填写密码。为什么我每次认证都是超时?...
- windows bat脚本实现ftp自动下载 删除
- Rust use of undeclared crate or module和maybe a missing crate?
- 吴军博士系列书籍读后感(《数学之美》、《浪潮之巅》、《文明之光》、《智能时代》)
- 200多条影响谷歌SEO排名的因素大全
- 新房怎么做到全屋网络覆盖?
- git 提交代码某个文件夹一直提交不上去
- 安全加密 - 安全认证 EAL,CC
- 您玩儿转手机通讯录了吗?