`
zpball
  • 浏览: 916375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java自动生成验证码插件-kaptcha

阅读更多
今天无意间发现了一个很好用的验证码插件,java版的,很不错的一个插件,只用简单的在web.xml中设置几个属性,一个很漂亮的验证码就出来了。其他的参数都可以自己设置,最牛的就是提供了接口,可以自己定义哦。


怎么样,还不错吧,这个图是我设置长宽后生成的,有点点大,不过没关系,这个可以自己设置的。

        多大概设置了边框,字体,个数,字的大小,长,宽,中文接口等这几个属性,然后很简单的就生成了这样一个验证码,呵呵,不错,很简单。

        看看配置:

1.<init-param>     
2.            <param-name>kaptcha.border</param-name>     
3.            <param-value>yes</param-value>     
4.        </init-param>     
5.        <init-param>     
6.            <param-name>kaptcha.border.color</param-name>     
7.            <param-value>105,179,90</param-value>     
8.        </init-param>     
9.        <init-param>     
10.            <param-name>kaptcha.textproducer.impl</param-name>     
11.            <param-value>com.randcode.ChineseText</param-value>     
12.        </init-param>     
13.     
14.        <init-param>     
15.            <param-name>kaptcha.textproducer.font.color</param-name>     
16.            <param-value>black</param-value>     
17.        </init-param>     
18.        <init-param>     
19.            <param-name>kaptcha.image.width</param-name>     
20.            <param-value>500</param-value>     
21.        </init-param>     
22.        <init-param>     
23.            <param-name>kaptcha.image.height</param-name>     
24.            <param-value>300</param-value>     
25.        </init-param>     
26.        <init-param>     
27.            <param-name>kaptcha.textproducer.font.size</param-name>     
28.            <param-value>90</param-value>     
29.        </init-param>     
30.        <init-param>     
31.            <param-name>kaptcha.session.key</param-name>     
32.            <param-value>code</param-value>     
33.        </init-param>     
34.        <init-param>     
35.            <param-name>kaptcha.textproducer.char.length</param-name>     
36.            <param-value>4</param-value>     
37.        </init-param>     
38.        <init-param>     
39.            <param-name>kaptcha.textproducer.font.names</param-name>     
40.            <param-value>宋体,楷体,微软雅黑</param-value>     
41.        </init-param>   
<init-param>  
            <param-name>kaptcha.border</param-name>  
            <param-value>yes</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.impl</param-name>  
            <param-value>com.randcode.ChineseText</param-value>  
        </init-param>  
  
        <init-param>  
            <param-name>kaptcha.textproducer.font.color</param-name>  
            <param-value>black</param-value>  
        </init-param>  
        <init-param>  
            <param-name>kaptcha.image.width</param-name>  
            <param-value>500</param-value>  
        </init-param>  
        <init-param>  
            <param-name>kaptcha.image.height</param-name>  
            <param-value>300</param-value>  
        </init-param>  
        <init-param>  
            <param-name>kaptcha.textproducer.font.size</param-name>  
            <param-value>90</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> 

呵呵,还简洁吧。这个插件自带了个中文生成类,但是这个类做得很死,中文是手动输入进去的,我的天,太死了,然后leo就找啊找,发现API中有一个自定义接口,哈哈,太好了,正好我之前有一个生成中文的程序,直接COPY过来,写了个简单的类,测试,成功了,就是上面发的图。接口是这个:

1.<init-param>        
2.     <param-name>kaptcha.textproducer.impl</param-name>        
3.     <param-value>com.randcode.ChineseText</param-value>        
4.</init-param>   
<init-param>     
     <param-name>kaptcha.textproducer.impl</param-name>     
     <param-value>com.randcode.ChineseText</param-value>     
</init-param>  
如果有朋友不知道怎么用的,可以联系我。
生成中文的代码:
Java代码 
1.package com.randcode;   
2.  
3.import java.util.Random;   
4.  
5.import com.google.code.kaptcha.text.TextProducer;   
6.import com.google.code.kaptcha.util.Configurable;   
7.  
8.public class ChineseText extends Configurable implements TextProducer{   
9.  
10.    public String getText() {   
11.        int length = getConfig().getTextProducerCharLength();   
12.        String finalWord="",firstWord="";   
13.        int tempInt=0;   
14.        String[] array={   
15.                "0","1","2","3",   
16.                "4","5","6","7",   
17.                "8","9","a","b",   
18.                "c","d","e","f"};   
19.           
20.        Random rand = new Random();   
21.           
22.        for(int i=0;i<length;i++){   
23.            switch(rand.nextInt(3)){   
24.                case 1:   
25.                        tempInt=rand.nextInt(26)+65;   
26.                        firstWord=String.valueOf((char)tempInt);   
27.                        break;   
28.                case 2:   
29.                        int r1,r2,r3,r4;   
30.                        String strH,strL;//high&low   
31.                        r1=rand.nextInt(3)+11; //前闭后开[11,14)   
32.                        if(r1==13){   
33.                            r2=rand.nextInt(7);   
34.                        }else{   
35.                            r2=rand.nextInt(16);   
36.                        }   
37.                           
38.                        r3=rand.nextInt(6)+10;   
39.                        if(r3==10){   
40.                            r4=rand.nextInt(15)+1;   
41.                        }else if(r3==15){   
42.                            r4=rand.nextInt(15);   
43.                        }else{   
44.                            r4=rand.nextInt(16);   
45.                        }   
46.                           
47.                        strH=array[r1]+array[r2];   
48.                        strL=array[r3]+array[r4];   
49.                           
50.                        byte[] bytes=new byte[2];   
51.                        bytes[0]=(byte)(Integer.parseInt(strH,16));   
52.                        bytes[1]=(byte)(Integer.parseInt(strL,16));   
53.                           
54.                        firstWord=new String(bytes);   
55.                        break;   
56.                default:   
57.                        tempInt=rand.nextInt(10)+48;   
58.                        firstWord=String.valueOf((char)tempInt);   
59.                        break;   
60.            }   
61.            finalWord+=firstWord;   
62.        }   
63.        return finalWord;   
64.    }   
65.}  



原文:http://www.iteye.com/topic/760483
分享到:
评论

相关推荐

    kaptcha-2.3.2-google验证码插件

    【kaptcha-2.3.2-google验证码插件】是一个基于Java开发的验证码生成插件,主要用于网站的安全验证,防止恶意自动程序(如机器人)进行非法操作,如批量注册、频繁提交表单等。该插件是Google开发的,因此在安全性和...

    SpringBoot整合Kaptcha(图形验证码)

    在这个Controller中,`/captcha`接口用于生成验证码并将其发送到客户端,而`/validate`接口则接收客户端提交的验证码进行验证。在生成验证码时,我们将验证码文本保存在HttpSession中,以便后续验证。 为了在实际...

    验证码例子(kaptcha插件的使用)

    `Kaptcha`是一个开源Java库,专为生成验证码图像而设计,具有高度可配置性,可以轻松集成到Web应用中。 首先,我们需要了解`Kaptcha`插件的基本用法。在Java项目中,你可以通过Maven或Gradle添加`kaptcha`依赖。...

    验证码开源组件--Jcaptcha和Kaptcha

    3. 高效生成:Kaptcha生成验证码的速度快,且内存占用小,适合高并发场景。 4. 默认实现:Kaptcha提供了默认的验证码生成器,无需额外的依赖,即可生成基本的验证码图像。 在实际使用中,这两个组件都可以通过Maven...

    kaptcha验证码

    总的来说,kaptcha作为一款优秀的Java验证码插件,以其简单的集成方式和高度可定制性,使得开发者能轻松地在项目中实现安全的验证码功能。无论是小型个人项目还是大型企业系统,kaptcha都能成为可靠的验证码解决方案...

    kaptcha验证码生成jar包后台配置源代码

    kaptcha生成验证码的作用:进行人机校验--防止机器脚本自动大量注册用户。 1、Kaptcha是谷歌开源的可高度配置的实用验证码生成工具。 2、过Kaptcha可阻拦大多数机器人脚本操作。 3、kaptcha典型殷用于注册、登录、...

    spring-gateway实现登录验证码校验的代码,百分百可用

    在本案例中,我们使用了 Kaptcha 插件来生成验证码。Kaptcha 是一个 Java 实现的验证码生成器,它可以生成包含字母和数字的复杂图片,并具有可配置的样式和扭曲程度,从而增加破解的难度。 首先,我们需要在项目中...

    kaptcha-2.3.2.jar

    《Kaptcha:Google开发的验证码插件解析》 在网络安全领域,验证码(CAPTCHA)扮演着至关重要的角色,它能够有效防止自动化的机器人程序进行恶意操作,如垃圾邮件的发送、账户的非法注册等。在Java开发环境中,...

    SpringBoot集成Kaptcha验证码生成器快速入门Demo

    编译器版本:IntelliJ IDEA 2020.3.2 x64 JDK版本:java 1.8.0_111 SpringBoot集成Kaptcha验证码生成器快速入门Demo,演示Kaptcha验证码生成器后端代码和前端测试页面

    java基础知识大全

    这个Servlet主要用于生成验证码图片。 - `&lt;init-param&gt;`标签用于配置Servlet的初始化参数: - `kaptcha.image.width`:设置验证码图片的宽度为85像素。 - `kaptcha.image.height`:设置验证码图片的高度为40像素...

    蓝莓商城(这个商城用到的技术挺新的,不是我写的,来赚点分数)

    一.开发环境 IDE: Eclipse 4.7.2 ...验证码库: kaptcha 三.前端技术 JS框架:Jquery CSS框架:bootstrap 多级列表树插件:zTree 富文本编辑器:wangEditor 三.前后端交互 主要使用AJAX传输数据!

    【20210611】Springboot开发系统支持与配置文件.pdf

    图形验证码的生成则可以通过`kaptcha`库来实现,这在用户登录验证等场景中非常常见。 此外,文件中还提到了其他一些依赖,可能包括但不限于日志记录、安全控制、邮件发送等功能的组件。每个依赖都有其特定的版本号...

    spring-boot-starter-samples:spring-boot-starter-samples

    16. **Kaptcha**:Kaptcha是一个生成验证码的库,Spring Boot starter-kaptcha则用于在Spring Boot应用中集成验证码功能。 17. **Ehcache3**:Ehcache 3是流行的Java缓存库,Spring Boot starter-ehcache3提供了对...

    SpringBoot整合Shiro完整源码(含sql脚本).rar

    5.2 验证码:可以使用第三方库如Kaptcha生成验证码,将其结果存入session,并在登录页面显示,验证时比对输入的验证码是否正确。 六、SQL脚本与数据初始化 6.1 `authority.sql`:这个文件可能包含了权限相关的...

    若依RuoYi框架剖析笔记,该笔记是在学习江南一点雨所录课程再结合自己的理解所写

    3、**验证码(Kaptcha)**:RuoYi中的验证码实现采用Kaptcha库,配置类CaptchaConfig中可定制验证码生成器KaptchaTextCreator。 4、**登录(JWT)**:RuoYi使用JWT(JSON Web Tokens)进行身份验证,提供安全的无状态...

    如何构建快速的mvc开发环境

    8. **kaptcha 0.0.9**:生成图片验证码的库。 9. **quartz-all 1.6.0** 和 **zookeeper 3.4.5**:用于定时任务调度和分布式调度。 10. **Libzkclient 0.3** 和 **Kafkaclient 0.9.0.1**:Kafka客户端,实现消息...

Global site tag (gtag.js) - Google Analytics