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、进入密码重置页面后,输入新密码并确认。密码设置完成后,即可使用新密码登录农作物种子企业业务办理集成平台。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)