用java写了一个带扭曲特性的验证码程序。
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import org.springframework.stereotype.Component;
/**
* CheckCode.java
*
* @author King
*
* @Description 验证码生成类
* @since 1.0.0
* @Date 2012-2-29下午1:50:25
*/
@Component
public class CheckCode {
private int width = 102;
private int height = 28;
private int codeCount = 4;
private Random random = new Random();
/**
* 验证码图片
*/
private BufferedImage buffImg;
/**
* 验证码字符串
*/
private String checkCodeStr;
/**
*
* @Description:创建验证码对象
* @since 1.0.0
* @Date:2012-3-1 上午10:26:20
* @return CheckCode
*/
public CheckCode createCheckCode() {
CheckCode checkCode = new CheckCode();
checkCode.setCheckCodeStr(createRandomCode());
checkCode.setBuffImg(disturb());
return checkCode;
}
/**
*
* @Description:随机产生的验证码
* @since 1.0.0
* @Date:2012-3-1 上午10:20:05
* @return String
*/
private String createRandomCode() {
StringBuffer randomCode = new StringBuffer();
String strRand = null;
int xx = width / (codeCount + 1);
int codeY = height - 4;
char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J',
'K', 'L', 'M', 'N', 'P', 'Q', 'R'