任何登录都有验证 ,比如万恶的 12306 验证码。但是为什么登录都要有验证码呢?
可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式。
现在我们利用比较简易的方式实现这个功能。
-
画一个框,往里面生成随机数随机字母
-
将生成的验证码保存一份到session
-
将用户输入的结果和session保存的比较是否相等
以上就是主要思路。接下来开始写代码:
新建一个生成验证码的IdentifyingCode Servlet . java ,然后在前端调用。(注意配置web.xml或者不配置web.xml直接在Servlet方法前面加@WebServlet(“/image/identifyingCode.img”) 注解。 )
首先我们需要一个生成随机验证码的方法:
为什么数字是加48?因为 ASCll码表 里0是在第48位的。
其他具体的代码就不单独贴出,如下:
具体生成验证码的代码就是这样。接下来我们需要更改LoginServlet的代码加入验证码的判断:
这样就完成了验证码的验证,改完之后即使用户名密码正确,验证码不正确也是登录失败的页面。
验证码的生成 和验证就是这样。
当然还有其他的业务需求这里就不做详细的分析,比如输入验证码的时候 忽略大小写 的话还需要进行验证码的转换。还有现在比较流行的 滑块滑动验证 就是对滑块的 X轴 和 Y轴 进行判断。
下一期再见!