共计 926 个字符,预计需要花费 3 分钟才能阅读完成。
需要形容
通常咱们最登录的时候,为了避免屡次尝试或攻打登录接口,咱们须要弄一个验证码的性能,只有输出验证码正确的状况下,咱们才会去做明码校验,这样就缩小了明码可能会被试出来的可能。
需要剖析
这个功能设计要点有两个:
第一点、验证码图片的生成
验证码图片的生成应用到 io 流,网上很多生成验证码的工具,比如说应用 awt 的 Graphics2D 生成的。但如果要调整验证码的个数、款式等那就有点麻烦了。这里给大家介绍一个验证码开源组件 com.google.code.kaptcha。能够灵便调整验证码的款式。
第二点、验证码的存储形式
如果只是一个单体我的项目,能够存在 session 当中,如果集成了 shiro,也能够放 shiro 的 session 中。
而在分布式系统当中,须要思考验证码的共享性能。
1、能够存储在 session 中,如须要集成 spring session,把 session 存到 redis 等存储中间件中 session 验证码共享性能。
2、shiro 集成了 redis 的,就能够存在 shiro session 当中实现共享。
3、当然,你也能够间接把验证码存到 redis 等中间件中,不须要通过 session,然而 key 就必须惟一。
伪代码逻辑
1、引入 com.google.code.kaptcha 的 pom 坐标
2、生成验证码的配置信息,配置款式等
3、调用 producer 接口生成验证码和图片,并保留到 session 中
4、应用 servlet 输入流把验证码图片
5、传到客户端校验验证码
倡议: 能够定义一个验证码开关,开发时候能够敞开验证码性能,提高效率。
代码实现
第一步、导入验证码组件 pom 包
第二步、生成验证码配置
第三步、生成验证码图片,把验证码存到 session 中
第四步、校验验证码是否正确
至此,验证码性能实现结束~~
(完)
举荐浏览
IDEA2020.2.3 破解,IDEA2020.2 激活破解,IDEA 激活码
太赞了,这个 Java 网站,什么我的项目都有!https://markerhub.com
这个 B 站的 UP 主,讲的 java 真不错!
B 站 15 万播放量,SpringBoot+Vue 前后端拆散残缺入门教程!
太赞了!最新版 Java 编程思维能够在线看了!
2021 年最新的常问企业面试题大全以及答案