VB识别图片验证码_图片验证码自动识别输入

VB识别图片验证码_图片验证码自动识别输入,第1张

packagecomhe;

importjavaxservlet;

importjavaxservlet>

importjavaio;

importjavautil;

importjavaawt;

importjavaawtimage;

importjavaximageio;

publicclassCodeFact

extends>

publicvoiddoGet(request,response)throws

,IOException{

//设置页面不缓存

responsesetHeader("Pragma","No-cache");

responsesetHeader("Cache-Control","no-cache");

response("Expires",0);

//在内存中创建图象

intwidth=60,height=20;

image=new(width,height,TYPE_INT_RGB);

//获取图形上下文

Graphicsg=imagegetGraphics();

//生成随机类

Randomrandom=newRandom();

//设定背景色

gsetColor((200,250));

gfillRect(0,0,width,height);

//设定字体

gsetFont(newFont("TimesNewRoman",FontPLAIN,18));

//画边框

gsetColor(newColor(33,66,99));

gdrawRect(0,0,width-1,height-1);

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

gsetColor((160,200));

for(inti=0;i

intx=randomnextInt(width);

inty=randomnextInt(height);

intxl=randomnextInt(12);

intyl=randomnextInt(12);

gdrawLine(x,y,xxl,yyl);

}

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

StringsRand="";

for(inti=0;i

Stringrand=StringvalueOf(randomnextInt(10));

sRand=rand;

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

gsetColor(newColor(20randomnextInt(110),20randomnextInt(110),20randomnextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成

gdrawString(rand,13i6,16);

}

//将认证码存入SESSION

>

session("rand",sRand);

//图象生效

gdispose();

//输出图象到页面

ImageIOwrite(image,"JPEG",response());

}

publicvoiddoPost(request,response)throws

,IOException{

doGet(request,response);

}

//给定范围获得随机颜色

privateColor(intfc,intbc){

Randomrandom=newRandom();

if(fc

fc=255;

}

if(bc

bc=255;

}

intr=fcrandomnextInt(bc-fc);

intg=fcrandomnextInt(bc-fc);

intb=fcrandomnextInt(bc-fc);

returnnewColor(r,g,b);

}

}

你试试!!

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

验证码实际上就是随机选择一些字符以的形式展现在页面上 如果进行提交 *** 作的同时需要将上的字符同时提交 如果提交的字符与服务器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、打开登录页面,点击“忘记密码”或“找回密码”按钮。
2、进入密码找回页面后,输入注册时填写的手机号或邮箱,并进行验证。
3、输入验证码后,系统会向手机或邮箱发送一条包含密码重置链接的验证信息。请注意查收并点击该链接。
4、进入密码重置页面后,输入新密码并确认。密码设置完成后,即可使用新密码登录农作物种子企业业务办理集成平台。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12605965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存