怎样用java实现验证码

Python013

怎样用java实现验证码,第1张

现在许多系统的注册 登录或者发布信息模块都添加的随机验证码功能 就是为了避免自动注册程序或者自动发布程序的使用

验证码实际上就是随机选择一些字符以图片的形式展现在页面上 如果进行提交操作的同时需要将图片上的字符同时提交 如果提交的字符与服务器session保存的不同 则认为提交信息无效 为了避免自动程序分析解析图片 通常会在图片上随机生成一些干扰线或者将字符进行扭曲 增加自动识别验证码的难度

在这里 我们使用java实现验证码

<%@ page contentType= image/jpeg import= java awt * java awt image * java util * javax imageio * %>

<%!

Color getRandColor(int fc int bc){//给定范围获得随机颜色

Random random = new Random()

if(fc>) fc=

if(bc>) bc=

int r=fc+random nextInt(bc fc)

int g=fc+random nextInt(bc fc)

int b=fc+random nextInt(bc fc)

return new Color(r g b)

}

%>

<%

//设置页面不缓存

response setHeader( Pragma No cache )

response setHeader( Cache Control no cache )

response setDateHeader( Expires )

// 在内存中创建图象

int width= height=

BufferedImage image = new BufferedImage(width height BufferedImage TYPE_INT_RGB)

// 获取图形上下文

Graphics g = image getGraphics()

//生成随机类

Random random = new Random()

// 设定背景色

g setColor(getRandColor( ))

g fillRect( width height)

//设定字体

g setFont(new Font( Times New Roman Font PLAIN ))

// 随机产生 条干扰线 使图象中的认证码不易被其它程序探测到

g setColor(getRandColor( ))

for (int i= i<i++)

{

int x = random nextInt(width)

int y = random nextInt(height)

int xl = random nextInt( )

int yl = random nextInt( )

g drawLine(x y x+xl y+yl)

}

// 取随机产生的认证码( 位数字)

String codeList = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

String sRand=

for (int i= i<i++){

int a=random nextInt(codeList length() )

String rand=codeList substring(a a+ )

sRand+=rand

// 将认证码显示到图象中

g setColor(new Color( +random nextInt( ) +random nextInt( ) +random nextInt( )))//调用函数出来的颜色相同 可能是因为种子太接近 所以只能直接生成

g drawString(rand *i+ )

}

// 将认证码存入SESSION

session setAttribute( rand sRand)

// 图象生效

g dispose()

// 输出图象到页面

ImageIO write(image JPEG response getOutputStream())

out clear()

out = pageContext pushBody()

lishixinzhi/Article/program/Java/hx/201311/25536

1.打开编程工具:

打开java编程的界面,采用的是eclipse软件;

2

2.建立一个java工程:

简洁操作如下:单击“file”-“new”-“java project”;

然后,在工程菜单中选中工程,单击鼠标右键出出来菜单,依次选中“new”-“class”;

具体查看“ eclipse如何建立一个java工程”;

0eclipse如何建立一个java工程

END

2.代码实现步骤

1.建立输入扫描:

采用java中的Scanner类实现输入数据的获取,具体代码如下;

Scanner scan = new Scanner(System.in)

2.接收用户名:

建立一个提示信息,提示输入用户名,并储存输入的用户名,代码如下:

System.out.println("请输入登陆用户名:")

String usename=scan.nextLine()

3.接收密码:

建立一个提示信息,提示输入密码,并存储输入的密码,代码如下:

System.out.println("请输入登陆的密码:")

String password=scan.nextLine()

4.验证信息:

采用if else语句来实现对用户名和密码的验证,并打印提示信息,代码如下:

if(!usename.equals("me")){

System.out.println("用户名非法。")

}else if(!password.equals("123456")){

System.out.println("登陆密码错误。")

}else{

System.out.println("恭喜您,登陆信息通过验证。")

}