使用kaptcha生成验证码

前言

说到生成验证码,我们第一个想到的就是kaptcha包,因为这个包已经存在很久了,比较稳定,用的人也多网上的示例代码多,而且很多项目脚手架做验证时也都是用这个框架的。

代码

添加依赖

        <!-- 验证码 --><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>${kaptcha.version}</version></dependency>

配置

    @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, "black");// 验证码图片宽度 默认为200properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160");// 验证码图片高度 默认为50properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");// 验证码文本字符大小 默认为40properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");// KAPTCHA_SESSION_KEYproperties.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;}

控制器

import com.google.code.kaptcha.impl.DefaultKaptcha;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;@RestController
public class KaptchaController {@Autowiredprivate DefaultKaptcha captchaProducer;@GetMapping("/img")public void getKaptcha(HttpServletResponse response) throws IOException {String text = captchaProducer.createText();BufferedImage image = captchaProducer.createImage(text);ImageIO.write(image, "jpg", response.getOutputStream());}
}

访问测试

访问:http://localhost:8080/img
在这里插入图片描述

关于配置的分析

// KAPTCHA_SESSION_KEY
properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");

上面这段配置代码是把生成的字符串文本存到session里,但是我们写个控制器访问获取试试

    @GetMapping("/getCode")public String getCode(HttpSession session) {return ((String) session.getAttribute("kaptchaCode"));}

在这里插入图片描述
根本没有,他确实写进session里了,但是并不是这么使用的。

让session生效的配置

使用kaptcha自带的servlet,要注册进spring中

    @BeanServletRegistrationBean captchaServlet() {ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<>();bean.setServlet(new KaptchaServlet());bean.addUrlMappings("/img2");Properties properties = new Properties();// 是否有边框 默认为true 我们可以自己设置yes,noproperties.setProperty(KAPTCHA_BORDER, "yes");// 验证码文本字符颜色 默认为Color.BLACKproperties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black");// 验证码图片宽度 默认为200properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160");// 验证码图片高度 默认为50properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");// 验证码文本字符大小 默认为40properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");// KAPTCHA_SESSION_KEYproperties.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");bean.setInitParameters(new HashMap<>(((Map) properties)));return bean;}

这个时候访问
在这里插入图片描述
在这里插入图片描述
OK,成功,具体代码可参考若依。

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

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

相关文章

kaptcha验证码使用

效果图&#xff1a; 官方地址&#xff1a;https://code.google.com/p/kaptcha/w/list 1、把下载的kaptcha-2.3.2.jar添加到lib中 2、配置web.xml增加servlet <servlet> <servlet-name>Kaptcha</servlet-name> <servlet-class>com.goog…

验证码Kaptcha的使用

引言 Kaptcha是一个非常实用的验证码生成工具&#xff0c;可以通过配置生成多样化的验证码。以图片的形式显示&#xff0c;从而无法进行复制粘贴。 1.引入Maven依赖 <!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha --><dependency><gro…

验证码captcha

通过使用Django的第三方库进行快速开发 安装软件 pip install django-simple-captcha 配置setting 使用python manage.py startapp user应用后在setting.py中添加 自定义forms.py 在应用下创建forms.py并添加如下&#xff1a; from django import forms from captcha.…

登录验证码实现(Captcha)

登录验证码 登录验证是一般系统都会有的功能&#xff0c;验证的方式也多种多样&#xff0c;比如输入式验证码&#xff0c;拖动式验证条&#xff0c;拖动式验证拼图等等。 我们这里先实现常规的输入验证码的方式&#xff0c;右边显示验证码图片&#xff0c;点击可刷新&#xf…

使用chatgpt过funcaptcha验证码3个人学习记录

funcaptcha 验证码3 通过记录 往期验证码&#xff1a;http://t.csdn.cn/ulgXY funcaptcha1 往期验证码&#xff1a;http://t.csdn.cn/3xMnZ funcaptcha2 funcaptcha 那个公司开发的简要介绍&#xff1a; Funcaptcha是由hCaptcha公司开发的一种人机验证系统。hCaptcha是一家位…

使用chatgpt过funcaptcha验证码2个人学习记录

funcaptcha 验证码2 通过记录 ** funcaptcha 那个公司开发的简要介绍&#xff1a; Funcaptcha是由hCaptcha公司开发的一种人机验证系统。hCaptcha是一家位于美国的人机验证技术提供商&#xff0c;旨在帮助网站和应用程序防止自动化攻击和滥用。 Funcaptcha是hCaptcha提供的一种…

chatgpt赋能python:Python如何获取手机短信验证码

Python如何获取手机短信验证码 在现代社会里&#xff0c;验证码已经成为了各种网站、APP、银行等机构对用户身份认证的必备手段。从有用性角度考虑&#xff0c;我们需要确保验证码的真实有效性&#xff0c;从而保护用户信息的安全。而为了方便用户接收验证码&#xff0c;手机短…

chatgpt赋能python:Python爬虫绕过验证码的技巧及实现方法

Python爬虫绕过验证码的技巧及实现方法 在进行网络爬虫过程中&#xff0c;验证码常常会给我们带来种种困扰&#xff0c;如何绕过验证码是广大爬虫开发者必须面对的难题之一。在本文中&#xff0c;我们将介绍一些有助于解决验证码问题的技巧和实现方法。 什么是验证码 验证码…

chatgpt赋能python:Python判断验证码是否正确

Python判断验证码是否正确 验证码是一种用于防止机器人攻击的技术&#xff0c;现在被广泛地使用在网站登录、注册、找回密码等场景中。以图片形式出现的验证码&#xff0c;可以让机器难以破解或自动化攻击&#xff0c;提供了更加安全的体验。在Python中&#xff0c;我们可以使…

chatgpt赋能python:Python发送短信验证码教程-从入门到实战

Python发送短信验证码教程 - 从入门到实战 作为一名有10年Python编程经验的工程师&#xff0c;我深知短信验证码在很多场景下的重要性。比如注册、登录、重置密码等&#xff0c;都需要使用短信验证码来确认用户的真实性。 Python是一种非常强大的编程语言&#xff0c;可以很方…

五分钟创建一个ChatGPT Plugin

OpenAI 在2023年3月发布了 ChatGPT 的官方 API &#xff0c;且于今天发布了Plugin开发使用资格&#xff0c;许多开发者和创业者都兴致勃勃地想办法将其整合到自己的业务运营中。 但是&#xff0c;想要做到这一点&#xff0c;仍然困难重重&#xff1a; OpenAI为 ChatGPT 提供了…

还不懂如何与chatGPT高效交流?保姆级且全面的chatGPT提示词工程教程来啦!(二)进阶篇

还不懂如何与chatGPT高效交流&#xff1f;保姆级且全面的chatGPT提示词工程教程来啦&#xff01;&#xff08;二&#xff09;进阶篇 基础篇中&#xff0c;教了如何通过遵循四个基本要义向chatGPT清楚的表达出你的需求。下面是四要义的提纲&#xff0c;忘记了可以复习一下还不懂…

当ChatGPT遇上弱智…

每天给你送来NLP技术干货&#xff01; 来自&#xff1a;量子位 点击这里进群—>加入NLP交流群 没想到&#xff0c;无敌如弱智吧&#xff0c;也有被ChaGPT“反将一军”的时候。 提问AI“咱们来玩个马吃草的扮演游戏吧&#xff0c;我草你马。” AI咀嚼了一下这句话&#xff0c…

事半功倍,使用ChatGPT编写Python函数

如何使用 ChatGPT 编写 Python 函数 微信搜索关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 在这篇文章中&#xff0c;我将分享如何使用 ChatGPT 来帮助我编程的过程。我们将看到它在哪些方面做得好&#xff0c;在哪些方面做得不好。 TLDR&#x…

使用ChatGPT提升Python编程效率

作为Python开发者&#xff0c;如何使用 OpenAI ChatGPT提升Python变成效率。 微信搜索关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 OpenAI 的聊天工具是一个基于网络的聊天界面&#xff0c;允许用户使用名为“ChatGPT”的 OpenAI 语言模型进行交…

ChatGPT连接企微

目录 一、下载企业微信项目地址 二、创建应用 三、配置应用 3.1、这里需要记录上你的AgentId与Secret&#xff0c;然后点击下面的设置API接收&#xff0c;设置下面的参数&#xff0c;现在还保存不了&#xff0c;进行下一步&#xff1a;服务器运行应用 3.2 、API接受消息界…

ChatGPT is fun, but not an author(有兴趣加入ChatGPT群)ChatGPT利与弊分析

关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c;扫码在主页获取加入方式 计算机视觉研究院专栏 作者&#xff1a;Edison_G 在不到两个月的时间里&#xff0c;人工智能&#xff08;AI&#xff09;项目ChatGPT已经成为一种文化…

当我把ChatGPT拉进群聊里,我的朋友都玩疯了

前言 近期ChatGPT可以说是太火了&#xff0c;问答、写论文、写诗、写代码&#xff0c;只要输入精确的prompt&#xff0c;他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中&#xff0c;会是怎样一番场景&#xff1f;说做就做&#xff0c;花了1个晚上捣鼓…

怎么玩ChatGPT?解锁玩ChatGPT玩法

继AI绘画之后&#xff0c;ChatGPT开始成为新晋“网红。ChatGPT是一个有趣的AI程序。ChatGPT是OpenAI推出的一个语言模型系统&#xff0c;它能够实时回答用户提问&#xff0c;包括聊天、纠正语法错误&#xff0c;甚至是写代码、写剧本等&#xff0c;由于可玩性很高。正是因此&am…

刚刚,我做了详细的ChatGPT玩法攻略

ChatGPT是什么?它是一款由微软开发的对话式人工智能应用,可以与用户进行自然、流畅、有趣的对话,甚至可以生成各种类型的文本内容,如诗歌、故事、代码等。它是基于GPT-3模型开发的,拥有超过1750亿个参数,可以理解和生成多种语言。 ChatGPT为什么这么火?因为它不仅是一款…