验证码定义:
验证码是一种区分用户是计算机还是人的公共自动程序。
作用:
可以防止恶意破解密码,刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。
没有验证码会带来的一些问题:
- 对特定用户不断登录破解密码
- 对某个网站创建账户
- 对某个网站提交垃圾数据
- 对某个网站刷票
1、使用Servlet实现
开源组件实现验证码
- 使用Jcaptcha组件实现验证码
jcaptcha的使用比较简单:
1:下载并将其JAR放到类路径下
2:配置web.xml
3:写一个验证验证码的请求方法
web配置代码
<servlet>
<servlet-name>jcaptcha</servlet-name>
<servlet-class>
com.octo.captcha.module.servlet.image.SimpleImageCaptchaServlet
</servlet-class>
</servlet>
- 使用Kaptcha组件使用验证码
下载kaptcha-2.3。jar
将jar包导入项目
编写页面
配置web.xml
启动项目
web.xml配置
<servlet>
<servlet-name>kaptcha</servlet-name>
<servlet-class>
com.google.code.kaptchaServlet
</servlet-class>
</servlet>
插件KaptchaServlet获取session中的验证码
String captcha = ((String) request.getSession().getAttribute(
com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY));
边框颜色:rgb值也可以
文本实现类:kaptcha.textproducer.impl 值为:com.google.code.kaptcha.text.impl.DefaultTextCreator
验证码值配置:kaptcha.textproducer.char.string 值:abcde2345678gfynmnpwx(随意你自己写)
验证码的长度:kaptcha.textproducer.char.length 值:
字体:kaptcha.textproducer.font.names 值:Arial,Courier
字体颜色:kaptcha.textproducer.font.color 值: r,g,b 或者 white,black,blue
文字间隔:kaptcha.textproducer.char.space 值:
干扰实现类:kaptcha.noise.impl 值:com.google.code.kaptcha.impl.DefaultNoise/NoNoise
干扰颜色:kaptcha.noise.color 值: r,g,b 或者 white,black,blue
图片样式:kaptcha.obscurificator.impl 值:
水纹com.google.code.kaptcha.impl.WaterRipple;
鱼眼com.google.code.kaptcha.impl.FishEyeGimpy;
阴影com.google.code.kaptcha.impl.ShadowGimpy
背景实现类:kaptcha.background.impl 值:com.google.code.kaptcha.impl.DefaultBackground
背景渐变色开始:kaptcha.background.clear.from 值:r,g,b 或者 white,black,blue
背景渐变色结束:kaptcha.background.clear.to 值:r,g,b 或者 white,black,blue
文字渲染器:kaptcha.word.impl 值:com.google.code.kaptcha.text.impl.DefaultWordRenderer
session中存放验证码的key键:kaptcha.session.key 值:KAPTCHA_SESSION_KEY