验证码应用在各种场合中,十分广泛,在多种多样的系统或软件中的新用户帐户注册、用户登录、网站统一登陆或者用户在网站发布信息模块发布文章或内容都添加的随机码功能,对用户操作过程进行一种验证,使用验证码的目的就是为了避免网络中的自动注册程序或者自动发布程序的滥用。 验证码的原理其实就是随机选择一些字符码以将字符码以图片的形式展现在软件验证界面或验证页面上,当用户在进行提交操作的同时需要将图片上的验证码输入并同时提交,如果提交的字符验证码与服务器session保存的字符码相同,则认为提交信息有效,否则拒绝提交。在使用验证码过程中,为了避免自动分析程序解析图片并获得验证信息,通常需要在图片上随机生成一些干扰线或者将复杂的字符对图片进行扭曲模糊,从而增加了自动识别程序分析验证图片的难度。
JSP验证码源码大全将分别用几个篇幅的内容来介绍在JSP中几种验证码的实现源码以及使用。
一、JSP中产生数字验证码源码
数字验证码是一种最常用的验证字符码形式,以下为数字实现的JSP源码:
Color getRandColor( { Random random =
} //获取随机颜色 response.setHeader( response.setHeader( response.setDateHeader(
BufferedImage image = Graphics g = image.getGraphics(); Random random = g.setColor(getRandColor(200,250)); g.fillRect(0, 0, width, height); g.setFont( g.setColor(getRandColor(160,200));
{
g.drawLine(i_x,i_y,i_x+i_xl,i_y+i_yl); } String s_Rand=
{ String rand=String.valueOf(random.nextInt(10)); s_Rand+=rand; g.setColor( g.drawString(rand,13*i+6,16); } session.setAttribute( g.dispose(); ImageIO.write(image, out.clear(); out = pageContext.pushBody(); |