头歌-信息安全技术-Java生成验证码

  • 一、第1关:使用Servlet生成验证码
  • 1、任务描述
  • 2、编程要求
  • 3、评测代码
  • 二、第2关:用户登录时校验验证码是否正确
  • 1、任务描述
  • 2、编程要求
  • 3、评测代码
  • 三、第3关:使用Kaptcha组件生成验证码
  • 1、任务描述
  • 2、编程要求
  • 3、评测代码


一、第1关:使用Servlet生成验证码

1、任务描述

本关任务:使用servlet生成验证码。

2、编程要求

web.xml中的代码已经添加,按照上述步骤编写servlet代码,点击测评即可。
效果图:

java 保证交易安全 java安全验证_前端

3、评测代码

第一关只需按照相关知识中给出的代码照抄即可通关!

java 保证交易安全 java安全验证_java_02

二、第2关:用户登录时校验验证码是否正确

1、任务描述

本关任务:编写程序验证验证码是否正确。

2、编程要求

好了,该你啦,使用本关所学内容,完成登录的校验,具体要求如下:

  • 首先实现验证码校验的功能,当验证码填写错误的时候,给前端返回数据“验证码错误”;
  • 当用户名为admin,密码为admin123时可以登录成功,返回“登录成功”,其他情况返回“登录失败”;
  • 前端页面已经编写完成,你需要编写的是后端代码。

3、评测代码

java 保证交易安全 java安全验证_java_03

PrintWriter writer=resp.getWriter();
        String verifycode=req.getParameter("verifycode");
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        HttpSession session=req.getSession();
        String realCode=(String) session.getAttribute("sessionYzm");
        if(verifycode!=null && verifycode.equals(realCode)){
           if("admin123".equals(password) && "admin".equals(username)){
               writer.write("登录成功");
           }else{
               writer.write("登录失败");
           }
        }else{
            writer.write("验证码错误");
        }

三、第3关:使用Kaptcha组件生成验证码

1、任务描述

本关任务:使用Kaptcha组件生成验证码,并校验验证码是否正确。

2、编程要求

好了,到你啦,来使用Kaptcha生成验证码并校验输入的验证码是否正确吧。

  • 补全captchacode.jsp,实现验证码表单的页面效果;
  • 补全CheckCaptchaServlet,实现验证码的校验功能,验证码正确返回:验证码输入正确,否则返回:验证码输入错误。

3、评测代码

java 保证交易安全 java安全验证_java 保证交易安全_04


java 保证交易安全 java安全验证_信息安全技术_05

PrintWriter out=resp.getWriter();
        HttpSession session=req.getSession();
        String trueCaptcha=(String) session.getAttribute(Constants.KAPTCHA_SESSION_KEY);
        String inputCaptcha=req.getParameter("captcha");
        if(trueCaptcha.toLowerCase().equals(inputCaptcha.toLowerCase())){
            out.write("验证码输入正确");
        }else{
            out.write("验证码输入错误");
        }
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript">
       function reloadCode(){
           var date=new Date().getTime();
           document.getElementById("code").src="<%=request.getContextPath() %>/imageKaptcha?d="+date;
       }
    </script>
</head>
<body>
<!--------- Begin --------->
<form action="checkCaptcha.jsp" method="post">
    <img alt="验证码" src="imageKaptcha" id="code"><a href="javascript:reloadCode();">看不清</a>
    <input type="text" name="captcha">
    <input type="submit" value="submit">
</form>
<!--------- End --------->
</body>
</html>