1 packagecom.dkt.util;2
3 importjava.awt.Color;4 importjava.awt.Font;5 importjava.awt.Graphics;6 importjava.awt.Graphics2D;7 importjava.awt.RenderingHints;8 importjava.awt.geom.AffineTransform;9 importjava.awt.image.BufferedImage;10 importjava.io.File;11 importjava.io.FileOutputStream;12 importjava.io.IOException;13 importjava.io.OutputStream;14 importjava.util.Arrays;15 importjava.util.Random;16
17 importjavax.imageio.ImageIO;18 /**
19 *
VerifyCodeUtils Description: (验证码生成)
20 * DATE: 2016年6月2日 下午3:53:3421 */22 public classVerifyCodeUtils{23
24 //使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符
25 public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";26 private static Random random = newRandom();27
28
29 /**
30 * 使用系统默认字符源生成验证码31 *@paramverifySize 验证码长度32 *@return
33 */
34 public static String generateVerifyCode(intverifySize){35 returngenerateVerifyCode(verifySize, VERIFY_CODES);36 }37 /**
38 * 使用指定源生成验证码39 *@paramverifySize 验证码长度40 *@paramsources 验证码字符源41 *@return
42 */
43 public static String generateVerifyCode(intverifySize, String sources){44 if(sources == null || sources.length() == 0){45 sources =VERIFY_CODES;46 }47 int codesLen =sources.length();48 Random rand = newRandom(System.currentTimeMillis());49 StringBuilder verifyCode = newStringBuilder(verifySize);50 for(int i = 0; i < verifySize; i++){51 //随机在验证字符中取一个值
52 verifyCode.append(sources.charAt(rand.nextInt(