Kaptcha生成图片验证码

Kaptcha简介

kaptcha 是一个很有用的验证码生成工具。由于它是可配置的,有了它,你能够生成各种样式的验证码。
Kaptcha 是一个可高度配置的实用验证码生成工具,可自由配置的选项如:

  • 验证码的字体
  • 验证码字体的大小
  • 验证码字体的字体颜色
  • 验证码内容的范围(数字,字母,中文汉字!)
  • 验证码图片的大小,边框,边框粗细,边框颜色
  • 验证码的干扰线
  • 验证码的样式(鱼眼样式、3D、普通模糊、…)

用法

  1. 前往官网http://code.google.com/p/kaptcha/下载jar包。
  2. 在pom.xml中导入
<dependency><groupId>com.google.code.kaptcha</groupId><artifactId>kaptcha</artifactId><version>2.3</version>
</dependency>

或者

<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version>
</dependency>

主要代码

CaptchaConfig.java

package online.xybh.framework.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;import static com.google.code.kaptcha.Constants.*;/*** @Author: xybh* @Description:* @Date: Created in 16:23 2021/1/4* @Modified:*/
@Configuration
public class CaptchaConfig {@Bean(name = "captchaProducer")public DefaultKaptcha getKaptchaBean() {DefaultKaptcha defaultKaptcha = new DefaultKaptcha();Properties properties = new Properties();// 是否有边框 默认为true 我们可以设置为yes或noproperties.setProperty(KAPTCHA_BORDER, "yes");// 验证码文本字符颜色 默认为Color.BLACKproperties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "blue");// 验证码图片宽度 默认为200properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160");// 验证码图片高度 默认为50properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");// 验证码文本字符大小 默认为40properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");// 验证码存入session的键properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");// 验证码文本字符长度 默认为5properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");// 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");// 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple  鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpyproperties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

CaptchaController.java

package online.xybh.web.controller.common;import com.google.code.kaptcha.Producer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;/*** @Author: xybh* @Description: 验证码接口* @Date: Created in 16:00 2021/1/4* @Modified:*/
@RestController
public class CaptchaController {@Resource(name = "captchaProducer")private Producer captchaProducer;@GetMapping("/captchaImage")public ModelAndView getCode(HttpServletResponse response) throws IOException {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");// 生成文本内容String text = captchaProducer.createText();// 生成图片BufferedImage image = captchaProducer.createImage(text);ServletOutputStream out = response.getOutputStream();ImageIO.write(image, "jpg", out);out.flush();out.close();return null;}
}

页面效果

地址栏输入:localhost:8080/captchaImage
生成验证码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61945.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前后端分离java开发图形验证码+谷歌开源Kaptcha使用(Springboot+redis实现图形验证码校验)

文章目录 1.背景1.1 什么是短信-邮箱轰炸机1.2 公司带来的损失 2.如何避免自己的网站成为"肉鸡“或者被刷呢3.表单重复提交问题4.Kaptcha框架介绍5.前后端分离验证码实战开发-思路分析6.前后端分离验证码实战开发-后端代码5.1 pom.xml核心依赖5.2 KaptchaConfig配置类5.3 …

Qt音乐播放器实现(带歌词功能)

最近期末项目要写一个音乐播放器&#xff0c;作为新人头疼了好久&#xff0c;参考了各方文档&#xff0c;总算憋出来了一个&#xff0c;歌词功能用的是一个大佬实现的&#xff0c;然后我就调用了&#xff0c;就是我那个lyricwidget.cpp和头文件就是直接弄过来的&#xff0c;但是…

JavaWeb音乐网站开发:Ajax异步获取歌词文件并显示,以及实现音频与歌词对应同步的方法

在开发音乐网站或APP的时候&#xff0c;都必须要面对这一个问题&#xff1a;如何让正在播放的歌曲的歌词与音频对应&#xff1f;也就是歌曲正在唱哪一句对应显示这一句的歌词&#xff1f;这便是今天这篇博客主要谈论的主题&#xff0c;先抛开爬虫爬取这一说&#xff0c;今天讲的…

Android解析lrc里的歌词

解析记歌词的类。这是解析.lrc文件里的歌词。 解析歌词使用的是输入流&#xff0c;然后吧歌词和歌词时间放在JavaBean的列表里。具体代码如下&#xff1a; package com.zzm.android.Handler;import java.io.BufferedReader; import java.io.File; import java.io.FileInputStr…

iPhone上的lrc播放器可以在播放mp3文件时显示歌词

https://apps.apple.com/cn/app/%E6%96%B0lrc%E6%92%AD%E6%94%BE%E5%99%A82/id1535214306 长久以来&#xff0c;在iPhone上播放lrc字幕一直是一个大的问题。因为苹果自带的音乐播放器不支持lrc歌词字幕&#xff0c;而市面上也少有支持lrc歌词字幕的音乐播放器App。 现在&…

音乐歌词同步实现指南

有道友问了我这个问题&#xff0c;所以在这写了下思路首先&#xff0c;我默认你至少已经了解了h5的audio标签的相关属性&#xff0c;直入正题audio使用指南audio标签audio之HTML 事件属性 old歌词 一般的说&#xff0c;lyric文件由时间的tag标签组成&#xff0c;如截图所示 现在…

把乐谱换成c语言程序的软件,有没有什么软件可以把音乐换成简谱?

一、下载&#xff1a; 1。先把WAV或MP3转换成MIDI 下载地址&#xff1a; http://www.skycn.com/soft/10460.html 2。再把MIDI转成五线谱 下载地址&#xff1a; http://soft.pcnow.com.cn/soft/17237.shtml 二、安装&#xff1a; 1。安装MP3转MIDI工具&#xff0c;一直点下一步即…

安卓文字绘制和歌词器的简单实现

文章目录 安卓绘制文本的细节和歌词动画实战绘制简单文本绘制API绘制线设计多条线的原因 中心绘制x轴居中align居中宽度居中 正中心绘制 动画绘制原理过度绘制解决过度绘制 Demo点赞评论找我要哦 安卓绘制文本的细节和歌词动画实战 绘制文本有许多细节&#xff0c;这篇文章从绘…

歌词同步

歌词同步 前面的话歌词同步的需求歌词加载歌词显示歌曲播放时歌词的滚动计算歌词滚动范围如何同步歌词的滚动细节计算 鼠标拖拽时歌词的滚动自由滚动歌词 源码 前面的话 最近发现我们班同学做了一个很酷的Demo&#xff0c;这个Demo实现了一个很不错的歌词同步&#xff0c;着实…

终于等到你!Guitar Pro 8.1版本简谱功能首发

Guitar Pro是一款非常流行的音乐制谱软件它不仅适用于吉他谱还可以用于其他乐器的制谱。历经5年多时间研发Guitar Pro 在2022年正式发布了全新的8系列版本时隔不到1年Guitar Pro又给广大中国用户带来期盼已久的简谱功能下面让我带领大家一起体验吧 软件souurl.cn/BPln7d 图1 G…

人工智能火爆 国内这几家计算机视觉公司值得关注

&#xfeff;&#xfeff; 人工智能自降生以来就仿佛自带光环、备受瞩目。尤其是今年&#xff0c;国务院印发的《新一代人工智能发展规划》中提出&#xff0c;到2030年使中国人工智能理论、技术与应用总体达到世界领先水平&#xff0c;成为世界主要人工智能创新中心&#xff0c…

国内最值得关注的10家人工智能语音识别公司

在谈人工智能的时候&#xff0c;一定不能不谈语音识别&#xff0c;语音识别是人机交互的入口&#xff0c;是指机器/程序接收、解释声音&#xff0c;或理解和执行口头命令的能力。目前国内外都有公司在语音领域有所投入&#xff0c;其中包括才成立几年的初创企业&#xff0c;也包…

运气好到了一品

今天运气好&#xff0c;连续几把都赢了&#xff0c;一口气从布衣五品冲上了智贤一品&#xff0c;纪念一下。

到了智贤一品

朋友今天运气不错&#xff0c;今天连续打几把&#xff0c;都赢了&#xff0c;所以品级从智贤五品一路升级到了智贤一品&#xff0c;他很开心&#x1f601;。

之伏一品纪念

昨天运气不错&#xff0c;玩了几把&#xff0c;结果巴巴赢&#xff0c;从智贤一品升级到了之伏五品&#xff0c;之伏往升级的需要赢的次数就更多了&#xff0c;我感觉自己没啥希望了&#xff0c;有一个已经非常满足了。因为再过两个月会重新排名&#xff0c;重新从零开始升级。…

每周一品 · 永磁联轴器 Magnetic Couplings

永磁联轴器&#xff08;Magnetic Couplings&#xff09;是通过永磁体的磁力将原动机与工作机联接起来的一种新型联轴器&#xff0c;它无需直接的机械联接&#xff0c;而是利用永磁体之间磁耦合&#xff0c;利用磁场可穿透一定的空间距离和物质材料的特性&#xff0c;进行机械能…

生活随记-斗地主直线一品

今天运气很好&#xff0c;进阶到了直线一品&#xff0c;记录下这个历史时刻吧

java毕业设计闲一品交易平台(附源码、数据库)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

springboot闲一品交易平台系统(文档+源码)

大家好&#xff0c;我是火旺技术&#xff0c;一个混迹在java圈的码农,今天要和大家聊的 是一款基于springboot的闲一品交易平台系统网站,项目源码请联系火旺&#xff0c;目前有各类成品 毕设 javaweb ssh ssm springboot等等项目框架&#xff0c;源码丰富&#xff0c;欢迎咨询。…