当前位置:网站首页 > 技术博客 > 正文

javaweb怎么实现图形验证码



目录

项目创建

前端代码实现

约定前后端交互接口

需求分析

接口定义

Hutool工具

实现服务器端代码

引入依赖

获取验证码

验证码校验

调整前端代码


随着安全性的要求越来越高,目前许多项目中都使用了验证码,验证码也有各种类型,如 图形验证码、短信验证码、邮件验证码、人脸识别等,这些不同类型的验证码可以根据实际需求和安全性要求进行选择和应用,保护网站和用户免受恶意攻击

在本篇文章中,我们来学习图形验证码的实现

验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用 Hutool 提供的小工具实现

验证码需要实现功能

1. 页面生成验证码,点击图片可进行刷新

2. 输入验证码,点击提交,验证用户输入验证码是否正确,正确则进行页面跳转

我们首先创建项目,并引入相关依赖

接下来,我们实现两个简单的前端界面:

1. 验证码界面

2. 验证成功后跳转的界面

 

index.html

 
   

success.html

 
   

后端需要提供两个服务:

1. 生成验证码,并返回

2. 校验验证码是否正确

1.  生成验证码

[URL]

GET /captcha/getCaptcha

[请求参数]

[响应]

}

2. 校验验证码是否正确

[URL]

POST /captcha/check

[请求参数]

captcha=xmad

[响应]

}

根据用户输入的验证码,校验验证码是否正确,校验成功,返回true;校验失败,返回false

我们使用 Hutool 提供的小工具来实现验证码

Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类

Hutool是一个小而全的Java工具类库,通过静态方法的封装,降低相关API学习成本,提高效率

Hutool官网:

 
   

由于我们只需要实现验证码相关功能,因此只需要引入验证码部分依赖 

我们可以通过提供的指南来学习如何使用

其中提供了:线段干扰验证码、圆圈干扰验证码、扭曲干扰验证码以及自定义验证码

我们通过其提供的例子来学习:

我们在 test 中 学习验证码的生成:

 
   

运行,观察结果:

且在D盘下成功生成验证码:

同样的,我们可以生成圆圈干扰验证码、扭曲干扰验证码等,大家可自行进行实现

接下来,我们实现验证码的生成

在实现验证码时,需要指定图片的长、宽和验证码的过期时间(也可指定验证码字符个数、干扰元素个数等),我们在 Constants 中进行定义

 
   

由于当用户输入验证码时,我们需要进行校验,因此,我们需要对生成的验证码进行存储,同时,需要存储验证码的生成时间,以便判断验证码是否超时

 
   

接下来我们来实现 CaptchaController

 
   

运行程序,此时成功生成验证码 

 
   

将用户输入的验证码与存储在 session 中的验证码进行对比,判断其是否相同,若相同且在1min内,则验证成功

在这里,我们就不对其进行测试了,在调整前端代码后,一起进行测试

接下来,我们修改 index.html

 
   

再次运行程序,此时输入验证码进行验证:

验证成功:

验证失败:

版权声明


相关文章:

  • rbac权限管理设计案例2025-05-31 13:30:04
  • linux md5值怎么查看2025-05-31 13:30:04
  • vulkan programming guide2025-05-31 13:30:04
  • 生成openid2025-05-31 13:30:04
  • 五笔输入法86版官方下载2025-05-31 13:30:04
  • java 静态内部类的使用2025-05-31 13:30:04
  • 异步fifo设计要点2025-05-31 13:30:04
  • 原生js有用吗2025-05-31 13:30:04
  • 计算机组成原理包括什么2025-05-31 13:30:04
  • ts写react2025-05-31 13:30:04