java开发之验证码

什么是验证码

所谓验证码(CAPTCHA),就是将一串随机产生的数字或符号,生成一幅图片,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。

验证码的作用及种类

验证码的主要作用一般是防止批量注册的和恶意程序暴力破解登录密码。目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。验证码实际上是动态生成的一幅图片, 图片里加上一些干扰象素(防止OCR),以增加恶意程序自动识别的难度。

 

常见的验证码有以下几种:

数字验证码。随机的一组数字,最原始的验证码,验证作用几乎为零。

数字图片验证码。图片上的字符比较中规中矩,验证作用比上一个好。

汉字图片验证码。更难识别,输入也更麻烦。

随机数字+随机英文字母+随机干扰像素+随机位置图片。

MIME类型

MIME的英文全称是“Multipurpose Internet Email Extension” 是一种多用途网际邮件扩充协议

MIME设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。

文件类型 

 

参考代码:

public class ValidateCodeServlet extends HttpServlet {

       //将来存放验证码值的session的key值

       public static final String VALIDATE_CODE_KEY = "ValidateCode";

 

       //请求servlet的时的被调方法

       public void doGet(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

 

//设置文档的内容类型为jpeg类型,

//从而在浏览的时候告知浏览器这是一个图片类型

response.setContentType("image/jpeg");

              //生成验证码,保存在session中

              HttpSession session = request.getSession();

             

//调用下面的generateString方法,

//生成一个4位长的每位为0-9的随机字符串

 

              String code = generateString();

              session.setAttribute(VALIDATE_CODE_KEY, code);

 

              //生出内存图片

              BufferedImage image = generateImage(code);

 

              //输出图片

              outputImage(image, response.getOutputStream());

       }

 

 

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值