资源描述:
《Java实现验证码验证功能》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java实现验证码验证功能Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢?Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字母,随机选取一定数量的字母随机生成,然后在画板上随机生成几条干扰线。首先,写一个验证码生成帮助类,用来绘制随机字母:[java]viewplaincopy在CODE上查看代码片派生到我的代码片importjava.awt.Color;imp
2、ortjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.io.OutputStream;importjava.util.Random;importjavax.imageio.ImageIO;publicfinalclassGraphicHelper{/***以字符串形式返回生成的验证码,同时输出一个图片**@paramwidth*图片的宽度*@par
3、amheight*图片的高度*@paramimgType*图片的类型*@paramoutput*图片的输出流(图片将输出到这个流中)*@return返回所生成的验证码(字符串)*/publicstaticStringcreate(finalintwidth,finalintheight,finalStringimgType,OutputStreamoutput){StringBuffersb=newStringBuffer();Randomrandom=newRandom();BufferedImageimage=n
4、ewBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);Graphicsgraphic=image.getGraphics();graphic.setColor(Color.getColor("F8F8F8"));graphic.fillRect(0,0,width,height);Color[]colors=newColor[]{Color.BLUE,Color.GRAY,Color.GREEN,Color.RED,Color.BLACK,Color.ORA
5、NGE,Color.CYAN};//在"画板"上生成干扰线条(50是线条个数)for(inti=0;i<50;i++){graphic.setColor(colors[random.nextInt(colors.length)]);finalintx=random.nextInt(width);finalinty=random.nextInt(height);finalintw=random.nextInt(20);finalinth=random.nextInt(20);finalintsignA=random.n
6、extBoolean()?1:-1;finalintsignB=random.nextBoolean()?1:-1;graphic.drawLine(x,y,x+w*signA,y+h*signB);}//在"画板"上绘制字母graphic.setFont(newFont("ComicSansMS",Font.BOLD,30));for(inti=0;i<6;i++){finalinttemp=random.nextInt(26)+97;Strings=String.valueOf((char)temp);sb.ap
7、pend(s);graphic.setColor(colors[random.nextInt(colors.length)]);graphic.drawString(s,i*(width/6),height-(height/3));}graphic.dispose();try{ImageIO.write(image,imgType,output);}catch(IOExceptione){e.printStackTrace();}returnsb.toString();}}接着,创建一个servlet,
8、用来固定图片大小,以及处理验证码的使用场景,以及捕获页面生成的验证码(捕获到的二维码与用户输入的验证码一致才能通过)。[java]viewplaincopy在CODE上查看代码片派生到我的代码片importjava.io.IOException;importjava.io.OutputS