参考地址:https://gitee.com/ele-admin/EasyCaptcha

Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。

效果展示

验证码字符类型

类型 描述
TYPE_DEFAULT 数字和字母混合
TYPE_ONLY_NUMBER 纯数字
TYPE_ONLY_CHAR 纯字母
TYPE_ONLY_UPPER 纯大写字母
TYPE_ONLY_LOWER 纯小写字母
TYPE_NUM_AND_UPPER 数字和大写字母

使用方法,例:

SpecCaptcha captcha3 = new SpecCaptcha(130, 48);
captcha3.setCharType(Captcha.TYPE_ONLY_NUMBER); // 纯数字

字体设置

字体 效果
Captcha.FONT_1

Captcha.FONT_2

Captcha.FONT_3

Captcha.FONT_4

Captcha.FONT_5

Captcha.FONT_6

Captcha.FONT_7

Captcha.FONT_8

Captcha.FONT_9

Captcha.FONT_10

使用方式,例:

        GifCaptcha captcha4 = new GifCaptcha(130, 48);// 设置内置字体captcha4.setFont(Captcha.FONT_10);// 设置系统字体captcha4.setFont(new Font("楷体", Font.PLAIN, 28));

使用方式

maven坐标:

<dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version>
</dependency>

测试代码:

package com.example.demo02;import com.wf.captcha.*;
import com.wf.captcha.base.Captcha;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.awt.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;@SpringBootTest
class Demo02ApplicationTests {@Testvoid contextLoads() throws IOException, FontFormatException {//中文验证码Captcha captcha = new ChineseCaptcha(150,60);//指定图片的高度和宽度//获取本次生成的验证码String text = captcha.text();System.out.println(text);captcha.out(new FileOutputStream(new File(("d:\\test.png"))));//算术验证码ArithmeticCaptcha captcha1 = new ArithmeticCaptcha();captcha1.getArithmeticString();  // 获取运算的公式:3+2=?//获取本次生成的验证码String text1 = captcha1.text();System.out.println(text1);captcha1.out(new FileOutputStream(new File(("d:\\test1.png"))));// 中文gif类型ChineseGifCaptcha captcha2 = new ChineseGifCaptcha(130, 48);String text2 = captcha2.text();System.out.println(text2);captcha2.out(new FileOutputStream(new File(("d:\\test2.png"))));// png类型SpecCaptcha captcha3 = new SpecCaptcha(130, 48);captcha3.setCharType(Captcha.TYPE_ONLY_NUMBER); // 纯数字String text3 = captcha3.text();// 获取验证码的字符captcha3.textChar();  // 获取验证码的字符数组System.out.println(text3);captcha3.out(new FileOutputStream(new File("d:\\test3.png")));// gif类型GifCaptcha captcha4 = new GifCaptcha(130, 48);// 设置内置字体captcha4.setFont(Captcha.FONT_10);captcha3.setCharType(Captcha.TYPE_ONLY_CHAR); // 纯字母String text4 = captcha4.text();System.out.println(text4);captcha4.out(new FileOutputStream(new File("d:\\test4.png")));}
}

easycaptcha_demo入门案例

创建spring-boot工程easycaptcha_demo并配置pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>easycaptcha_demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo02</name><description>Demo project for Spring Boot</description><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version></dependency></dependencies>
</project>

创建CaptchaController类

package com.example.controller;import com.wf.captcha.SpecCaptcha;
import com.wf.captcha.base.Captcha;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;/*** 验证码案例*/
@RestController
@RequestMapping("/easycaptcha")
public class CaptchaController {/*** 生成验证码*/@RequestMapping("/captcha")public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {// 设置请求头为输出图片类型response.setContentType("image/gif");response.setHeader("Pragma", "No-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);// 三个参数分别为宽、高、位数SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);// 设置字体specCaptcha.setFont(new Font("Verdana", Font.PLAIN, 32));  // 有默认字体,可以不用设置// 设置类型,纯数字、纯字母、字母数字混合specCaptcha.setCharType(Captcha.TYPE_ONLY_NUMBER);// 验证码存入sessionrequest.getSession().setAttribute("captcha", specCaptcha.text().toLowerCase());// 输出图片流specCaptcha.out(response.getOutputStream());}/*** 校验验证码* @param username 用户名* @param password 密码* @param verCode 验证码*/@PostMapping("/login")public String login(HttpServletRequest request,String username,String password,String verCode){// 获取session中的验证码String sessionCode = (String) request.getSession().getAttribute("captcha");// 判断验证码if (verCode==null || !sessionCode.equals(verCode.trim().toLowerCase())) {return "验证码不正确";}return "登录成功";}
}

启动项目,效果:

正确:

错误:

easycaptcha图形验证码相关推荐

  1. Java 图形验证码

    EasyCaptcha 1.简介  Java图形验证码,支持gif.中文.算术等类型,可用于Java Web.JavaSE等项目. 2.效果展示             算术类型:       中文类 ...

  2. 真香!推荐一个超级简单 Java 图形验证码模块

    简介 Java图形验证码,支持Gif.中文.算术等类型,可用于Java Web.JavaSE等项目. 效果展示 集成项目 maven方式引入: <dependencies><depe ...

  3. Django博客系统注册(图形验证码接口设计和定义)

    1. 准备captcha包(该包用于生成图形验证码) 1.将生成图片验证码的库复制到新建的libs包中. 2.安装Python处理图片的库 这儿可能会变红显示错误: 解决方案:在虚拟环境中安装Pill ...

  4. 美多商城之验证码(图形验证码)

    一.图形验证码 1.1 图形验证码逻辑分析 需要新建应用verifications 知识要点 将图形验证码的文字信息保存到Redis数据库,为短信验证码做准备. UUID 用于唯一区分该图形验证码属于 ...

  5. 4.Spring Security 添加图形验证码

    添加验证码大致可以分为三个步骤:根据随机数生成验证码图片:将验证码图片显示到登录页面:认证流程中加入验证码校验.Spring Security的认证校验是由UsernamePasswordAuthen ...

  6. Python模拟登录,Python识别图形验证码实现自动登陆

    前言 利用Python识别图形验证码,selenium模块实现自动登陆.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re: numpy模块: pytess ...

  7. 前端 验证码隐藏怎么实现_完成图形验证码

    使用 svg-captcha 这个包并结合后端实现图形验证码功能. 基本使用 在我们项目中安装 svg-captcha 包. $ npm install svg-captcha --save 官方文档 ...

  8. java验证码局部刷新_JS局部刷新图形验证码

    开发过程当中,网络安全采取的方法之一,采用验证码功能.一般在注册.登录的程序当中见得比较多.其自己在实现这一功能时,静态页面有一段调用图形验证码的PHP文件,//,验证码是随机生成的,一般将生成的验证 ...

  9. 图形验证码最佳攻略2

    下面是注册 如果是手机用户注册,需要发送短信验证码  说明: 发送图形验证码是为了拦截发送短信的.但是不拦截"注册帐号" 但是,用户体验很别扭,因为图形验证码很显然是错误的,但是却 ...

最新文章

  1. Golang 解决no buildable Go source file in问题
  2. 移动端布局三种视口_移动端适配之视口和meta标签
  3. css实用技巧:巧用css实现两栏等高布局
  4. Mac 打开jupyter
  5. 键盘里的电脑:树莓派400正式发布,售价70美元
  6. mysql如何把一个表直接拷贝到一个新的表
  7. 高中计算机课简单介绍,高中课程介绍
  8. 微软Windows字体被诉侵权?我们来聊聊有关网站侵权被诉的那些事。
  9. 苹果手机上linux编程,iOS真机调试 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...
  10. 泛微oa 明细数据合计
  11. 线性波传播至垂直壁面反射形成驻波的动画MATLAB程序
  12. python 数据可视化sns作图
  13. postgres使用with计算占比,同比和环比
  14. docker网络连接——docker network connect命令
  15. win7打开仅计算机黑屏,黑屏只剩鼠标指针,详解win7打开电脑黑屏只剩鼠标指针的解决教程...
  16. 深入理解常见的二十三种设计模式
  17. vue2对应的常用插件版本
  18. JS实现在线ps功能
  19. 指纹传感器的测试软件,【Arduino】168种传感器系列实验(149)-AS608光学指纹识别模块-Arduino中文社区 - Powered by Discuz!...
  20. Java常见数据类型举例及总结

热门文章

  1. (Windows系统)MATLAB2021a安装MinGW -w64
  2. hph中将前端接收的数据由json格式转成array
  3. 最全微信小程序demo
  4. 配置QQ企业邮箱小结
  5. 【异常】java.lang.Integer cannot be cast to java.lang.String
  6. 【密码学原理与实践】Chapter0 - 大纲
  7. Spring Web Flow —— 第一个Flow - 010
  8. 第六讲 DNN-HMM模型学习笔记
  9. error C2065: “_lpw”: 未声明的标识符
  10. #ifndef在头文件中的作用