이미지 검증 코드 개술 및 실현 절차
많은 사이트에서 이루어져야 할 것이 있다
역할:
시스템의 안전성을 높이기 위해
인증 코드가 있으면 우리는 사용자에게 사용자 이름, 비밀번호 등 정보를 입력한 후에 그림에 있는 문자를 입력하도록 요구할 수 있다. 사용자가 제출한 후에 시스템은 먼저 세션에서 방금 생성된 인증 코드를 추출하고 사용자가 입력한 인증 코드와 비교할 수 있다. 만약에 비교가 같다면 사용자가 로그인 인터페이스에서 로그인한 것을 나타낸다. 그렇지 않으면 사용자가 불법임을 나타낸다. 우리는 인증 코드를 사용한다.사용자가 직접 액세스할 페이지를 주소 표시줄에 입력하지 않도록 시스템을 사용하려면 로그인에 성공해야 합니다.
즉, 인증 코드를 사용하면 사용자 사용자가 반드시 먼저 로그인 인터페이스에서 로그인해야 한다는 것을 강제한다
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");
}
}
이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Processing] 클릭 포인트를 저장하고 아트 작품 그리기라고해도 가볍게 동작 설명을 마우스를 클릭하면 점이 기울어집니다. 첫 번째 점은 마우스의 위치를 목표로 계속 움직입니다. 선두 이외의 점은 1개전의 (선배에 해당하는 점)의 위치를 목표로 합니다 ⇒항상 움직이는 아트...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.