java识别图片验证码_JAVA---获取图片验证码

该博客介绍了一个JAVA工具类,用于生成包含随机数字的图形验证码,目的是防止程序自动攻击。生成的验证码具有颜色和位置随机性,以增加识别难度。通过工厂方法创建对象,并在Controller层调用,将生成的验证码保存到内存并进行Base64编码。
摘要由CSDN通过智能技术生成

上网查找资料,参考改了一个工具类,并添加到程序中

package com.guantong.seeing.common;

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.Random;

/**

* 生成随机数字或字母串,以图像方式显示,用于人工识别,使程序很难识别。

*

* 减小系统被程序自动攻击的可能性。

*

* 生成的图形颜色由红、黑、蓝、紫4中随机组合而成,数字或字母垂直方向位置在

*

* 一定范围内也是随机的,减少被程序自动识别的几率。

*

* 由于数字的0,1,2易和字母的o,l,z混淆,使人眼难以识别,因此不生成数字和字母的混合串。

*

* 生成的串字母统一用小写,串的最大长度为16。

*/

public class RandomGraphic {

//字符的高度和宽度,单位为像素

private int wordHeight = 10;

private int wordWidth = 15;

//最大字符串个数

private static final int MAX_CHARCOUNT = 16;

//垂直方向起始位置

private static final int initypos = 5;

//要生成的字符个数,由工厂方法得到

private int charCount = 0;

//颜色数组,绘制字串时随机选择一个

private static final Color[] CHAR_COLOR = {Color.RED, Color.BLUE, Color.MAGENTA, Color.blue};

//随机数生成器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值