后端生成图片验证码

注:以下代码主要使用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生成图片验证码,图片验证码的生成和校验相关推荐

  1. Java中使用图片验证码 --菜鸟小回

    Java中使用图片验证码 一.第一种方式 工具类 @WebServlet("/BufferImage") public class BufferImage extends Http ...

  2. 用java如何做图片验证码,运用java生成图片验证码

    使用java生成图片验证码 本程序来源以下网址:http://www.linux521.com/2009/java/200909/8475.html 仅供学习和参考 import java.awt.B ...

  3. PHP实现加减乘除图片验证码,ThinkPHP 3.2.3实现加减乘除图片验证码

    ThinkPHP 3.2.3 自带的验证码类位于 /ThinkPHP/Library/Think/Verify.class.php,字体文件位于 /ThinkPHP/Library/Think/Ver ...

  4. java生成验证码SWT_Java SWT Lable框中显示图片验证码

    public static String testcode="";//验证码,保存验证码,取这个值于用户输入的值作比较 public static void image(Label ...

  5. java验证码画布类型,【Java工具类】使用Kaptcha生成验证码写回页面中

    1. 导入依赖 导入kaptcha依赖: com.github.penggle kaptcha 2.3.2 2. 编写配置类: @Configuration public class KaptchaC ...

  6. Vue+Spring Boot实现图片验证码、邮箱验证码以及Cookie记住我功能(前后端代码详解)

    Vue实现图片验证码.邮箱验证码以及Cookie记住我功能 前言 图片验证码实现 Vue前端实现 Spring Boot后端实现 邮箱验证码实现 Vue前端实现 Spring Boot后端实现 Coo ...

  7. Java 图片验证码/图形验证码 亲测

    Java 图片验证码/图形验证码 1. Maven包 pom.xml 2. 图片验证码工具类 3. 生成验证码,图片验证码 和 验证接口 4. 验证页面 index.html 1. Maven包 po ...

  8. 【Spring Security OAuth2笔记系列】- spring security - 图片验证码

    图片验证码 在登录界面图形添加验证码 开发生成图像验证码接口 在认证流程中加入图像验证码校验 重构代码 开发生成图像验证码接口 思路: * 根据随机数生成图片 * 将随机数存到session中 * 将 ...

  9. LoadRunner录制图片验证码

    LoadRunner录制图片验证码 LoadRunner自身是无法捕获到图片验证码的,但是我们可以帮助LoadRunner来实现验证码的捕获. 1.图片验证码 图片验证码的产生来自服务器端,由服务器生 ...

最新文章

  1. html5 初试 indexedDB
  2. ios学习--TableView详细解释
  3. java 解决死锁_如何解决java中的死锁问题
  4. 系统设计说明书案例_VAV系统设计要点与案例分析
  5. 金融数据分析与挖掘实战练习2.10
  6. MS DOS 命令大全
  7. php post重复提交session,PHP加Session防止表单重复提交的解决方法
  8. 十大编程语言的优劣对比简述
  9. PCB封装-正片与负片
  10. html5制作旋转正方体,html5—旋转立方体
  11. 核磁共振电子计算机断层扫描术,计算机断层扫描(CT)和核磁共振(MRI) 的区别...
  12. SwiftUI+CoreData项目出现The operation couldn’t be completed(GenericObjCError error 0)错误的解决
  13. java8-Stream集合操作学习
  14. 牛客网练习2-《网络基础》
  15. 第4讲:C# 入门教程 入门知识(黄菊华NET网站开发、C#网站开发、Razor网站开发教程)
  16. Arcgis中图像裁剪
  17. mysql根据id分页_MySQL_MSSQL根据ID进行分页实现方法,复制代码 代码如下: ALTER PROCEDU - phpStudy...
  18. 《神经网络与深度学习》nndl读书笔记
  19. 10055 - Hashmat the Brave Warrior
  20. Linux 自定义回收站

热门文章

  1. 【随感】在Keras中如何按最大似然(Max Likewood)训练模型
  2. 教你如何搭建店铺—收支管理系统,demo可分享
  3. 常见的前端大厂ui库
  4. Linux命令行下常用svn命令的使用方法[转自:www.hackbase.com]
  5. 20200525【建设银行】建信金融科技实习生笔试卷L
  6. Windows命令提示符之常见命令
  7. 装机清单、配置及使用技巧
  8. 一张图了解三方支付流程
  9. jQuery在线选座系统(高铁版)
  10. Adobe photoshop与bridge更改文件位置重新关联