`
- 浏览:
98864 次
- 性别:
- 来自:
深圳
-
作者:梦想年华 日期:2006-09-12
一个用Java生成的彩色验证码。
程序代码
/*
**************************************
*说明:java生成校验码
*文件名:VerifyCode.java
*
*作者:梦想年华
*Email:fanwsp@126.com
*HomePage:www.freeage.cn
*QQ:122142023
*CopyRight(c)2005-2006byDreamTime
**************************************
*/packagedreamtime
.guestbook
;//指定类所在的包importjava
.awt
.*;//导入类importjava
.awt
.image
.*;importjava
.util
.*;//定义类publicclassVerifyCode
{staticRandomr
=newRandom
();staticStringssource
="ABCDEFGHIJKLMNOPQRSTUVWXYZ"+"abcdefghijklmnopqrstuvwxyz"+"0123456789";staticchar
[]src
=ssource
.toCharArray
();//产生随机字符串privatestaticStringrandString
(intlength){char
[]buf
=newchar
[length];intrnd
;for(inti
=0
;i
<length;i
++){rnd
=Math.abs(r
.nextInt
())%src
.length;buf
[i
]=src
[rnd
];}returnnewString(buf
);}//调用该方法,产生随机字符串publicStringrunVerifyCode
(inti
){StringVerifyCode
=randString
(i
);returnVerifyCode
;}//给定范围获得随机颜色publicColorgetRandColor
(intfc
,intbc
){Random
random=newRandom
();if(fc
>255
)fc
=255
;if(bc
>255
)bc
=255
;intr
=fc
+random.nextInt
(bc
-fc
);intg
=fc
+random.nextInt
(bc
-fc
);intb
=fc
+random.nextInt
(bc
-fc
);returnnewColor(r
,g
,b
);}//调用该方法将得到的验证码生成图象//sCode:传递验证码w:图象宽度h:图象高度publicBufferedImageCreateImage
(StringsCode
){//字符的字体FontCodeFont
=newFont
("ArialBlack",Font
.PLAIN
,16
);intiLength
=sCode
.length();//得到验证码长度intwidth=24
*iLength
,height=20
;//图象宽度与高度intCharWidth
=(int)(width-24
)/iLength
;//字符距左边宽度intCharHeight
=16
;//字符距上边高度//在内存中创建图象BufferedImageimage
=newBufferedImage
(width,height,BufferedImage
.TYPE_INT_RGB
);//获取图形上下文Graphicsg
=image
.getGraphics
();//生成随机类Random
random=newRandom
();//设定背景色g
.setColor
(getRandColor
(200
,240
));g
.fillRect
(0
,0
,width,height);//设定字体g
.setFont
(CodeFont
);//画随机颜色的边框g
.setColor
(getRandColor
(10
,50
));g
.drawRect
(0
,0
,width-1
,height-1
);//随机产生155条干扰线,使图象中的认证码不易被其它程序探测到g
.setColor
(getRandColor
(160
,200
));for(inti
=0
;i
<155
;i
++){intx
=random.nextInt
(width);inty
=random.nextInt
(height);intxl
=random.nextInt
(12
);intyl
=random.nextInt
(12
);g
.drawLine
(x
,y
,x
+xl
,y
+yl
);}for(inti
=0
;i
<iLength
;i
++){Stringrand
=sCode
.substring(i
,i
+1
);//将认证码显示到图象中g
.setColor
(newColor(20
+random.nextInt
(60
),20
+random.nextInt
(120
),20
+random.nextInt
(180
)));g
.drawString
(rand
,CharWidth
*i
+14
,CharHeight
);}//图象生效System.out
.print(CharWidth
);g
.dispose
();returnimage
;}//测试publicstaticvoidmain
(String[]args
){VerifyCodevc
=newVerifyCode
();Strings1
=vc
.runVerifyCode
(4
);System.out
.println
(s1
);//Imageim=vc.CreateImage(s1);//Graphicsg=im.getGraphics();//g.drawImage(im,20,20,this);//g.drawString(s1,20,20);}}[/code
][/color]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
java 生成彩色验证码的程序,改程序可以极大的帮助你,是你可以自动生成彩色的验证码
java生成验证码源码包括彩色验证码 包括jsp生成验证码和彩色验证码
Java生成彩色验证码是一种常见的安全措施,用于防止自动化脚本或恶意机器人进行非法操作,例如注册、登录等。在Web开发中,JSP(JavaServer Pages)可以用来创建动态的网页内容,包括验证码图像。以下是对标题和描述...
总之,Java生成彩色验证码涉及图像处理、随机数生成、颜色操作以及安全性设计等多个方面,是Web开发中一个有趣的实践案例。通过不断优化验证码的复杂度和安全性,我们可以有效防止自动化攻击,保护用户的账户安全。
在这个提供的压缩包中,包含的是一个基于Java实现的彩色验证码生成与验证的功能代码,适用于网页安全验证,防止自动机器人或恶意攻击。验证码通常由随机字符组成,目的是确保用户是人类而非自动化程序。 1. **彩色...
本项目重点在于使用JSP(Java Server Pages)技术自动生成彩色验证码,为用户提供一个视觉上更友好的验证体验。下面我们将深入探讨这个主题。 首先,验证码通常由一组随机字符组成,这些字符可以是数字、字母或其他...
对于本案例,`pic`文件夹可能包含了一些支持生成彩色验证码的资源文件,比如Java类或者配置文件。这些文件需要部署在JSP应用的`WEB-INF/classes`目录下,因为这是默认的类路径,JSP在运行时会从这里加载自定义的Java...
一个简单的生成彩色验证码的例子,部分代码if (r1 == 13) { r2 = random.nextInt(7); //生成0到7之间的随机数 } else { r2 = random.nextInt(16); //生成0到16之间的随机数 } String str_r2 = rBase[r2]; // ...
本教程将深入讲解如何使用JSP来生成彩色的验证码程序。 一、验证码的基本原理 验证码的主要目的是通过要求用户输入图片上显示的一串随机字符,来验证用户是人而非机器。这些字符通常是扭曲的,以便增加机器识别的...
验证码的作用:有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,腾讯的QQ社区),我们利用比较简易的方式...
在这个"JSP生成彩色验证码程序例子"中,我们将深入探讨如何利用JSP实现一个功能丰富的彩色验证码生成器。 验证码的主要目的是为了防止自动机器人或恶意脚本进行非法操作,例如防止垃圾邮件、注册机等。它通过显示一...
以下是一段简化版的关键代码片段,展示了如何生成彩色扭曲验证码: ```java public class VerifyCode { // ...省略部分变量声明和方法... public BufferedImage createImage(String sCode, int w, int h) { ...
从提供的文件信息中,我们可以提取以下知识点关于Java图形界面可视化彩色验证码的实现: 1. 验证码的生成与刷新机制: Java中的验证码通常用于区分用户与机器,通过生成一个随机的、用户需要识别的字符序列来实现。...
3. **图像处理**:生成彩色验证码需要我们创建并绘制一个图像。这涉及到`java.awt`和`javax.imageio`包中的类,如`BufferedImage`、`Graphics2D`等。我们需要定义图像的大小,然后在图像上画出随机颜色的背景、线条...
在类中定义了图像的宽度和高度,并在`service`方法中初始化了一个`BufferedImage`对象,用以存储生成的彩色验证码图片。 ```java private int width = 60; private int height = 20; protected void service...
3. **彩色背景**:为了增强视觉效果,我们可以为验证码生成彩色背景。可以随机选取RGB颜色值,然后使用`Graphics2D`的`setColor()`方法设置背景色。 4. **绘制字符**:在背景上绘制字符,同样可以设置随机颜色,...
本文将详细介绍如何在JSP中实现彩色验证码的生成与验证功能。彩色验证码不仅能够提高网站的安全性,还可以提升用户体验。根据文档的要求,我们需要创建三个JSP页面:`image.jsp`用于生成验证码图像,`a.jsp`作为展示...
在本实例中,我们关注的是一个基于Java实现的彩色验证码源码。Java是一种跨平台的编程语言,以其强大、灵活和易用性而闻名,特别适合开发这种类型的应用。 验证码的生成通常包括以下几个步骤: 1. **随机字符生成*...
在Web开发中,JSP(JavaServer Pages)作为服务器端脚本语言,常被用来生成动态的彩色验证码。本源码就是一种实现JSP彩色验证码的方法,旨在帮助开发者快速构建具有高安全性和视觉吸引力的验证码功能。 首先,我们...
Java 彩色验证码是一种用于网站安全验证的技术,其目的是防止自动化程序(如机器人或爬虫)进行非法操作,如批量注册、恶意登录等。验证码通常由随机生成的一组字符组成,用户需要正确输入这些字符才能完成操作。在...