이미지 검증 코드 개술 및 실현 절차

3045 단어 그림인증 코드
하나.이미지 인증 코드 개요:
많은 사이트에서 이루어져야 할 것이 있다
역할:
시스템의 안전성을 높이기 위해
인증 코드가 있으면 우리는 사용자에게 사용자 이름, 비밀번호 등 정보를 입력한 후에 그림에 있는 문자를 입력하도록 요구할 수 있다. 사용자가 제출한 후에 시스템은 먼저 세션에서 방금 생성된 인증 코드를 추출하고 사용자가 입력한 인증 코드와 비교할 수 있다. 만약에 비교가 같다면 사용자가 로그인 인터페이스에서 로그인한 것을 나타낸다. 그렇지 않으면 사용자가 불법임을 나타낸다. 우리는 인증 코드를 사용한다.사용자가 직접 액세스할 페이지를 주소 표시줄에 입력하지 않도록 시스템을 사용하려면 로그인에 성공해야 합니다.
즉, 인증 코드를 사용하면 사용자 사용자가 반드시 먼저 로그인 인터페이스에서 로그인해야 한다는 것을 강제한다
2.검증 실현 방식
두 가지 관건적인 종류를 사용하는데, 이 두 종류는 그림의 출력과 관계가 있다

BufferedImage im = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB);
// im 
//JPG 
//response.getOutputStream() , , servlet. servlet 
ImageIO.write(im, "JPG",response.getOutputStream());
셋.실현 절차
1. BufferedImage를 사용하여 이미지를 생성한 다음 ImageIO를 사용하여 출력하고 JPG 형식으로 지정

BufferedImage im = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB);
// im 
//JPG 
//response.getOutputStream() , , servlet. servlet 
ImageIO.write(im, "JPG",response.getOutputStream());
2. 그림 그리기 개체 가져오기Graphics g = im.getGraphics();3. 도면 영역 채우기

Random rm = new Random();
Color c = new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255));
g.setColor(c);
// 
g.fillRect(0, 0, 60, 20);
4. 그림에 숫자 출력

g.setColor(new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255)));
g.setFont(new Font(" ",Font.BOLD|Font.ITALIC,28));
g.drawString("8", 1, 18);
5. 무작위 4자리 숫자

// 4 
for(int i=0;i<4;i++){
 g.setColor(new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255)));
 g.setFont(new Font("Gungsuh",Font.BOLD|Font.ITALIC,22));
 g.drawString(""+rm.nextInt(10), (i*15)+2, 18);
}
6. 중국어 랜덤 생성

String str = " ";
for(int i=0;i<4;i++){
 g.setColor(new Color(rm.nextInt(255),rm.nextInt(255),rm.nextInt(255)));
 g.setFont(new Font("Gungsuh",Font.BOLD|Font.ITALIC,15));
 g.drawString(""+str.charAt(rm.nextInt(str.length())), (i*15)+2, 18);
}
7. 페이지에서 인증 코드를 도입하는 방법:<img alt=" " src="/ImageServlet">8. 로그인 비교를 위한 숫자 저장

// session , , 
request.getSession().setAttribute("piccode", sbf.toString());
9. 로그인 인증
우선, 이 사용자가 데이터베이스에 존재하는지 확인해야 하고, 만약 존재한다면, 입력한 인증 코드가 일치하는지 확인해야 한다.
검증이 성공하면 관련 조작 페이지로 전달해야 합니다.
코드 인스턴스:

boolean b_exist = login.validate(username,passwd);
// 
if(b_exist){
 String pic = ""+request.getSession().getAttribute("piccode");
 // 
 if(!pic.equals("") && pic.equals(code)){
 // session , 
 request.getSession().setAttribute("username", username);
 
 response.sendRedirect("index.jsp");
 }
}
이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!

좋은 웹페이지 즐겨찾기