在第一家公司做的就是登录注册,就用到了生成验证码的功能,虽然这个东西随便搜网上一大堆源码,但是今天在《maven实战》中看到了,很是怀念在qiandai的日子还有小伙伴们,于是mark一下。
首先验证码的用途:防止用户利用机器人自动注册、登录、灌水。而现在验证码的种类多种多样,有的很BT人眼都识别不了,一般为随机英文字母+随机颜色+随机位置。这里记录最基本的。
为了生成验证码图片,首先先生成验证码字符串的值。
有了验证码字符串的值之后,通过DefaultKaptcha来生成一个bufferedImage,随后将这个图片对象转换成jpg格式的字节数组并返回。有了这个字节数组,用户就能随意地将其保存成文件或者在网页上显示。
用户拿到验证码图片以及主键后,就会识别图片中所包含的字符串信息,然后将此验证码的值与主键一起反馈给validateCaptcha()方法进行验证。validateCaptcha通过主键找到正确的验证码值,然后与用户提供的值进行比对,成功为true。