后端生成图片验证码,Kotlin生成图片验证码,Java生成图片验证码,图片验证码的生成和校验
后端生成图片验证码
注:以下代码主要使用kotlin进行编写,kotlin可兼容java,可以直接使用。IDEA也支持将java与kotlin代码进行互相转换。
1、引入依赖:
Gradle(若你使用的是gradle依赖管理,使用这个):
implementation("com.github.penggle:kaptcha:2.3.2")
Maven(若你使用的maven依赖管理,使用这个):
<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version>
</dependency>
若未用依赖管理工具,则可将maven仓库对应的依赖jar包拉下导入lib。
2、配置类(和配置文件2选1即可)
@Configuration
class KaptchaConfig {@Beanfun producer(): Producer {val properties = Properties()//图片边框properties["kaptcha.border"] = "no"//图片中有几位字符properties["kaptcha.textproducer.char.length"] = "4"// 图片长宽properties["kaptcha.image.height"] = "50"properties["kaptcha.image.width"] = "100"//图片显示样式properties["kaptcha.obscurificator.impl"] = "com.google.code.kaptcha.impl.WaterRipple"//字体颜色properties["kaptcha.textproducer.font.color"] = "blue"//字体大小properties["kaptcha.textproducer.font.size"] = "40"//干扰 可选参数com.google.code.kaptcha.impl.NoNoise、com.google.code.kaptcha.impl.DefaultNoise;properties["kaptcha.noise.impl"] = "com.google.code.kaptcha.impl.DefaultNoise"properties["kaptcha.noise.color"] = "255,96,0"//排除b、g、i、l、o、q、s、z,1、0、9等比较难判断的字母和数字properties["kaptcha.textproducer.char.string"] = "acdefhkmnprtwxy2345678"val config = Config(properties)return config.producerImpl}
}
3、配置文件(和配置类2选一即可)
kaptcha:# 边框border: "no"textproducer:char:# 图片中有几位字符length: 4# 有哪些字符string: acdefhkmnprtwxy2345678font:# 字体颜色color: blue# 字体大小size: 40noise:# 干扰项 com.google.code.kaptcha.impl.NoNoise、com.google.code.kaptcha.impl.DefaultNoiseimpl: com.google.code.kaptcha.impl.DefaultNoisecolor: 255,96,0image:# 高height: 50# 宽width: 100obscurificator:# 图片显示样式impl: com.google.code.kaptcha.impl.WaterRipple
4、使用(以下是kotlin的写法,java换成对应的类注入即可)
@Autowired
private lateinit var producer: Producerfun getPicVeriCode(): String {// 随机获取内容val verificationCode = producer.createText()val verificationPic = generatePicVerification(verificationCode)// 之后可以将验证码放入redis,设置过期时间为 60s,之后进行验证码校验return verificationPic
}// 这里生成的base64放入img标签可直接展示。
fun generatePicVerification(verificationCode: String): String {// 生成对应的图片val bi = producer.createImage(verificationCode)val outputStream = ByteArrayOutputStream()ImageIO.write(bi, "jpeg", outputStream)val base64Image = "data:image/jpeg;base64," + Base64.encodeBase64String(outputStream.toByteArray())return "<img src='$base64Image'/>"
}
后端生成图片验证码,Kotlin生成图片验证码,Java生成图片验证码,图片验证码的生成和校验相关推荐
- Java中使用图片验证码 --菜鸟小回
Java中使用图片验证码 一.第一种方式 工具类 @WebServlet("/BufferImage") public class BufferImage extends Http ...
- 用java如何做图片验证码,运用java生成图片验证码
使用java生成图片验证码 本程序来源以下网址:http://www.linux521.com/2009/java/200909/8475.html 仅供学习和参考 import java.awt.B ...
- PHP实现加减乘除图片验证码,ThinkPHP 3.2.3实现加减乘除图片验证码
ThinkPHP 3.2.3 自带的验证码类位于 /ThinkPHP/Library/Think/Verify.class.php,字体文件位于 /ThinkPHP/Library/Think/Ver ...
- java生成验证码SWT_Java SWT Lable框中显示图片验证码
public static String testcode="";//验证码,保存验证码,取这个值于用户输入的值作比较 public static void image(Label ...
- java验证码画布类型,【Java工具类】使用Kaptcha生成验证码写回页面中
1. 导入依赖 导入kaptcha依赖: com.github.penggle kaptcha 2.3.2 2. 编写配置类: @Configuration public class KaptchaC ...
- Vue+Spring Boot实现图片验证码、邮箱验证码以及Cookie记住我功能(前后端代码详解)
Vue实现图片验证码.邮箱验证码以及Cookie记住我功能 前言 图片验证码实现 Vue前端实现 Spring Boot后端实现 邮箱验证码实现 Vue前端实现 Spring Boot后端实现 Coo ...
- Java 图片验证码/图形验证码 亲测
Java 图片验证码/图形验证码 1. Maven包 pom.xml 2. 图片验证码工具类 3. 生成验证码,图片验证码 和 验证接口 4. 验证页面 index.html 1. Maven包 po ...
- 【Spring Security OAuth2笔记系列】- spring security - 图片验证码
图片验证码 在登录界面图形添加验证码 开发生成图像验证码接口 在认证流程中加入图像验证码校验 重构代码 开发生成图像验证码接口 思路: * 根据随机数生成图片 * 将随机数存到session中 * 将 ...
- LoadRunner录制图片验证码
LoadRunner录制图片验证码 LoadRunner自身是无法捕获到图片验证码的,但是我们可以帮助LoadRunner来实现验证码的捕获. 1.图片验证码 图片验证码的产生来自服务器端,由服务器生 ...
最新文章
- html5 初试 indexedDB
- ios学习--TableView详细解释
- java 解决死锁_如何解决java中的死锁问题
- 系统设计说明书案例_VAV系统设计要点与案例分析
- 金融数据分析与挖掘实战练习2.10
- MS DOS 命令大全
- php post重复提交session,PHP加Session防止表单重复提交的解决方法
- 十大编程语言的优劣对比简述
- PCB封装-正片与负片
- html5制作旋转正方体,html5—旋转立方体
- 核磁共振电子计算机断层扫描术,计算机断层扫描(CT)和核磁共振(MRI) 的区别...
- SwiftUI+CoreData项目出现The operation couldn’t be completed(GenericObjCError error 0)错误的解决
- java8-Stream集合操作学习
- 牛客网练习2-《网络基础》
- 第4讲:C# 入门教程 入门知识(黄菊华NET网站开发、C#网站开发、Razor网站开发教程)
- Arcgis中图像裁剪
- mysql根据id分页_MySQL_MSSQL根据ID进行分页实现方法,复制代码 代码如下: ALTER PROCEDU - phpStudy...
- 《神经网络与深度学习》nndl读书笔记
- 10055 - Hashmat the Brave Warrior
- Linux 自定义回收站