Java验证码
一、验证码概述
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序
验证码的作用:
- 防止刷票、论坛灌水、刷页
- 防止黑客恶意破解密码,盗取用户数据
验证码通常使用一些线条和一些不规则的字符组成,主要作用是为了防止一些黑客把密码数据化盗取。有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。虽然登录麻烦一点,但是对网友的密码安全来说这个功能还是很有必要,也很重要
- 防止恶意注册、登录
验证码一般是防止批量注册的,人眼看起来都费劲,何况是机器。几乎所有正规的论坛都要求注册时输入验证码,这是为了防止乱发垃圾广告的人用注册机来恶意注册
二、Java原生验证码
创建好需要保存的Bean类,保存好结果和过期时间等,最后直接把这个类放在session中
1 | public class CheckCode { |
1、随机数字验证码
1 | // 验证码图片边框宽度 |
2、随机数字和字母验证码
1 | // 验证码图片边框宽度 |
3、运算验证码
1 | // 公共部分 |
三、引入三方验证码
三方验证码有很多,这里我就只举例一个
引入依赖
1 | <!--验证码--> |
编写代码
1 | "/") ( |