JSP generates digital verification code tutorial

Verification code is widely used in various occasions. It is a random code function added to new user account registration, user login, website unified login or user publishing information module on the website in various systems or software. , perform a kind of verification on the user operation process, the purpose of using the verification code is to avoid the abuse of the automatic registration program or the automatic publishing program in the network. The principle of the verification code is actually to randomly select some character codes to display the character codes in the form of pictures on the software verification interface or verification page. If the submitted character verification code is the same as the character code saved in the server session, the submitted information is considered valid, otherwise the submission is rejected. In the process of using the verification code, in order to avoid the automatic analysis program to parse the picture and obtain the verification information, it is usually necessary to randomly generate some interference lines on the picture or distort and blur the picture with complex characters, thereby increasing the automatic recognition program to analyze and verify the picture. difficulty.

The source code and use of several verification codes in JSP.

1. Generate digital verification code source code in JSP

Digital verification code is one of the most commonly used forms of verification character codes. The following is the JSP source code of digital implementation:

Num.jsp

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

<%!

Color getRandColor(int cc,int bb)

{

Random random = new Random();

if(fc>255) cc=255;

if(bc>255) bb=255;

int r=cc+random.nextInt(bb-cc);

int g=cc+random.nextInt(bb-cc);

int b=cc+random.nextInt(bb-cc);

returnnew Color(r,g,b);

} //Get random color

%>

<%

response.setHeader("Pragma","No-cache");

response.setHeader("Cache-Control","no-cache");

response.setDateHeader("Expires", 0);

int width=80; //Define the length of the captcha image

int height=30; //Define the width of the captcha image

BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

Graphics g = image.getGraphics();

Random random = new Random();

g.setColor(getRandColor(200,250));

g.fillRect(0, 0, width, height);

g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//Define the font format


g.setColor(getRandColor(160,200));

for (int i=0;i<155;i++)

{

int i_x = random.nextInt(width);

int i_y = random.nextInt(height);

int i_xl = random.nextInt(12);

int i_yl = random.nextInt(12);

g.drawLine(i_x,i_y,i_x+i_xl,i_y+i_yl);

}

// draw background with lines

String s_Rand="";

for (int i=0;i<4;i++)

{

String rand=String.valueOf(random.nextInt(10));

s_Rand+=rand;

 

g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));

g.drawString(rand,13*i+6,16);

}

//generate 4 digit random code


session.setAttribute("rand",s_Rand);

// save the verification code into the session


g.dispose();

ImageIO.write(image, "JPEG", response.getOutputStream());

// output verification image

out.clear();

out = pageContext.pushBody();

 

%>

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326989276&siteId=291194637