google kaptcha 验证码组件使用简介

kaptcha 是一个非常实用的验证码生成工具。有了它,你可以生成各种样式的验证码,因为它是可配置的。kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.KaptchaServlet,生成一个图片。同时将生成的验证码字符串放到 HttpSession中。

使用kaptcha可以方便的配置:

  • 验证码的字体
  • 验证码字体的大小
  • 验证码字体的字体颜色
  • 验证码内容的范围(数字,字母,中文汉字!)
  • 验证码图片的大小,边框,边框粗细,边框颜色
  • 验证码的干扰线(可以自己继承com.google.code.kaptcha.NoiseProducer写一个自定义的干扰线)
  • 验证码的样式(鱼眼样式、3D、普通模糊……当然也可以继承com.google.code.kaptcha.GimpyEngine自定义样式)

……

详细信息请看下面的web.xml文件

下面介绍一下用法:

1.首先去官网下载jar:http://code.google.com/p/kaptcha/

POM文件:

<!-- 中央仓库没得,必须去https://repository.sonatype.org私服拉取-->
<dependency><groupId>com.google.code.kaptcha</groupId><artifactId>kaptcha</artifactId><version>2.3</version><classifier>jdk15</classifier>
</dependency>

2.建立一个web项目,导入kaptcha-2.3.jar到环境变量中。

3.配置web.xml文件

    <!--Kaptcha 验证码  --><servlet><servlet-name>kaptcha</servlet-name><servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class><init-param><param-name>kaptcha.border</param-name><param-value>no</param-value></init-param><init-param><param-name>kaptcha.border.color</param-name><param-value>105,179,90</param-value></init-param>        <init-param><param-name>kaptcha.textproducer.font.color</param-name><param-value>red</param-value></init-param><init-param><param-name>kaptcha.image.width</param-name><param-value>250</param-value></init-param><init-param><param-name>kaptcha.image.height</param-name><param-value>90</param-value></init-param><init-param><param-name>kaptcha.textproducer.font.size</param-name><param-value>70</param-value></init-param><init-param><param-name>kaptcha.session.key</param-name><param-value>code</param-value></init-param><init-param><param-name>kaptcha.textproducer.char.length</param-name><param-value>4</param-value></init-param><init-param><param-name>kaptcha.textproducer.font.names</param-name><param-value>宋体,楷体,微软雅黑</param-value></init-param>        </servlet>

      <servlet-mapping><servlet-name>kaptcha</servlet-name><url-pattern>/ClinicCountManager/kaptcha.jpg</url-pattern></servlet-mapping>

JSP页面:

    <table><tr><td><img src="/ClinicCountManager/kaptcha.jpg"></td><td valign="top"><form method="POST"><br>sec code:<input type="text" name="kaptchafield"><br /><input type="submit" name="submit"></form></td></tr></table>    <br /><br /><br /><br /><%String c = (String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);String parm = (String) request.getParameter("kaptchafield");out.println("Parameter: " + parm + " ? Session Key: " + c + " : ");if (c != null && parm != null) {if (c.equals(parm)) {out.println("<b>true</b>");} else {out.println("<b>false</b>");}%>

上面的配置在普通jsp环境下面是有效的,如果在spring mvc环境下,则取不到session值,对于sping mvc环境验证码配置如下:

1.不用在web.xml进行相关配置,在applicationContext.xml中配置:

<bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"><property name="config"><bean class="com.google.code.kaptcha.util.Config"><constructor-arg><props><prop key="kaptcha.border">no</prop><prop key="kaptcha.border.color">105,179,90</prop><prop key="kaptcha.textproducer.font.color">red</prop><prop key="kaptcha.image.width">250</prop><prop key="kaptcha.textproducer.font.size">90</prop><prop key="kaptcha.image.height">90</prop><prop key="kaptcha.session.key">code</prop><prop key="kaptcha.textproducer.char.length">4</prop><prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop></props></constructor-arg></bean></property></bean>

新建生成图片控制类:

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;@Controller
@RequestMapping("/")
public class CaptchaImageCreateController {private Producer captchaProducer = null;@Autowiredpublic void setCaptchaProducer(Producer captchaProducer) {this.captchaProducer = captchaProducer;}@RequestMapping("/captcha-image")public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {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");// create the text for the imageString capText = captchaProducer.createText();// store the text in the sessionrequest.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);// create the image with the textBufferedImage bi = captchaProducer.createImage(capText);ServletOutputStream out = response.getOutputStream();// write the data outImageIO.write(bi, "jpg", out);try {out.flush();} finally {out.close();}return null;}}

前台调用方式:

 <div class="chknumber"><label>验证码:        <input name="kaptcha" type="text" id="kaptcha" maxlength="4" class="chknumber_input" />             </label><img src="/ClinicCountManager/captcha-image.do" width="55" height="20" id="kaptchaImage"  style="margin-bottom: -3px"/> <script type="text/javascript">    $(function(){         $('#kaptchaImage').click(function () {//生成验证码$(this).hide().attr('src', '/ClinicCountManager/captcha-image.do?' + Math.floor(Math.random()*100) ).fadeIn(); })    }); </script> </div>

取验证码的方式:

        String code = (String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);

如果需要纯数字:

        <init-param>     <param-name>kaptcha.textproducer.char.string</param-name>     <param-value>0123456789</param-value>     </init-param>

去掉干扰线:

        <init-param><param-name>kaptcha.noise.impl</param-name><param-value>com.google.code.kaptcha.impl.NoNoise </param-value></init-param>

原文地址1:google kaptcha 验证码组件使用简介 - 自行车上的程序员 - 博客园

原文地址2:https://stone02111.iteye.com/blog/1688195

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

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

相关文章

发现一个开源的Chatgpt-web应用,前端使用vue编写,后端也是nodejs代码编写的。

1&#xff0c;项目地址&#xff1a; https://github.com/Chanzhaoyu/chatgpt-web ChatGPTAPI 使用 gpt-3.5-turbo-0301 通过官方OpenAI补全API模拟ChatGPT&#xff08;最稳健的方法&#xff0c;但它不是免费的&#xff0c;并且没有使用针对聊天进行微调的模型&#xff09; Ch…

chatgpt赋能python:Python获取短信验证码:想省时省力,就得尝试!

Python获取短信验证码&#xff1a;想省时省力&#xff0c;就得尝试&#xff01; 作为一名有10年python编程经验的工程师&#xff0c;我深知其中的难点和麻烦。很多人甚至会担心&#xff0c;网络上关于Python的短信验证码获取有很多风险&#xff0c;这一点当然不能忽略。但在我…

chatgpt赋能python:Python短信验证码:安全、高效、便捷

Python短信验证码&#xff1a;安全、高效、便捷 作为一种普遍且方便易用的验证方式&#xff0c;短信验证码拥有广泛的应用场景&#xff0c;从注册登录到快捷支付等各种领域都能看到短信验证码的身影。而在实现短信验证码的过程中&#xff0c;Python编程语言提供了安全、高效、…

基于kaptcha生成验证码

基于spring boot应用做的演示&#xff0c;先引入如下起步依赖&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>kaptcha-spring-boot-starter</artifactId><version>1.1.0</version></dependency>新建ka…

chatgpt赋能python:Python绕过验证码实现登录

Python 绕过验证码实现登录 随着互联网的发展&#xff0c;验证码已经成为一种常见的安全措施&#xff0c;用于防止恶意程序或者网络爬虫的攻击。但是对于一些开发者来说&#xff0c;他们需要快速地获取特定网站的数据&#xff0c;因此需要绕过验证码实现登录。在本文中&#x…

关于 reCAPTCHA 验证码

原帖地址&#xff1a;http://jandan.net/2013/02/17/recaptcha.html 国外很多下载站用到下面这种验证码&#xff0c;它其实是 Google 提供的 reCAPTCHA 服务(link)&#xff0c;可以免费申请和使用。 # Jimmy Liye 同学翻译了 Google reCAPTCHA 的部分说明(原文&#xff1a;放…

Kaptcha验证码实现

文章目录 实现流程用户认证 实现流程 1.先引用了google的验证码生成器(Kaptcha) <dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9</version></dependency>2.编写Kaptcha的配…

基于kaptcha插件来实现验证码功能(超级简单,超级好用)

目录 导入kaptcha依赖到项目中 在web.xml中配置相关的配置&#xff08;KaptchaServlet本质是一个Servlset&#xff09; 使用插件完成注册功能 导入kaptcha依赖到项目中 maven工程形式&#xff1a;导入 Kaptcha依赖 <!-- Kaptcha验证码组件 --> <dependen…

使用kaptcha快速生成验证码

文章目录 kaptcha会员注册和登录&#xff1a; 第一步&#xff0c;在Maven仓库中引入Kaptcha依赖&#xff08;注意将新的jar&#xff0c;进行发布) 第二步&#xff0c;在applicationContext.xml文件中配置Kaptcha 第三步&#xff0c;创建Controller类&#xff0c;生成Kaptcha代码…

使用kaptcha生成验证码

前言 说到生成验证码&#xff0c;我们第一个想到的就是kaptcha包&#xff0c;因为这个包已经存在很久了&#xff0c;比较稳定&#xff0c;用的人也多网上的示例代码多&#xff0c;而且很多项目脚手架做验证时也都是用这个框架的。 代码 添加依赖 <!-- 验证码 --><d…

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;可以很方…