zoukankan      html  css  js  c++  java
  • AuthCodeTool验证码

    public class AuthCode {
    public static final int AUTHCODE_LENTH = 5;//验证码的长度
    public static final int SINGLECODE_WIDTH = 15;//单个验证码的宽度
    public static final int SINGLECODE_HEIGHT = 30;//单个验证码的高度
    public static final int SINGLECODE_GAP = 4;//单个验证码之间的间距
    public static final int IMG_WIDTH = AUTHCODE_LENTH * (SINGLECODE_WIDTH + SINGLECODE_GAP);//画布的宽度
    public static final int IMG_HEIGHT = SINGLECODE_HEIGHT;//画布的高度

    /**
    * 得到一个5位数的验证码
    * @return
    */
    public static String getAuthCode(){
    String authCode = "";
    for(int i = 0; i < AUTHCODE_LENTH; i ++){
    int value = new Random().nextInt(10);
    authCode += value;
    }
    return authCode;
    }
    /**
    * 根据验证码生成验证码画板
    * @param authCode
    * @return
    */
    public static BufferedImage getAuthImage(String authCode){
    BufferedImage img = null;
    //设置画板的高度,宽度,以及画板的色泽
    img = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, BufferedImage.TYPE_INT_RGB);
    //得到画板中的一个画笔
    Graphics g = img.getGraphics();
    //设置画笔的颜色
    g.setColor(Color.YELLOW);
    //使用画笔来填充一个矩形,需要设置的矩形的左上角坐标,宽度,高度
    g.fillRect(0, 0, IMG_WIDTH, IMG_HEIGHT);

    //将画笔的颜色设置为黑色,用来写字
    g.setColor(Color.BLACK);
    //设置字体,以及字号等信息
    g.setFont(new Font("宋体", Font.BOLD, 20));

    char c;
    //输出数字
    for(int i = 0; i < authCode.toCharArray().length;i++){
    //循环取得每个位置上字符
    c = authCode.charAt(i);
    //将字符画入画板中,并且指定开始的位置
    g.drawString(c+"", i*(SINGLECODE_WIDTH + SINGLECODE_GAP) + SINGLECODE_GAP /2, IMG_HEIGHT);
    }

    //制造干扰素
    Random random = new Random();
    for(int i = 0; i < 20; i ++){
    int x1 = random.nextInt(IMG_WIDTH);
    int y1 = random.nextInt(IMG_HEIGHT);
    int x2 = random.nextInt(IMG_WIDTH);
    int y2 = random.nextInt(IMG_HEIGHT);
    g.drawLine(x1, y1, x2, y2);
    }
    return img;
    }
    }

  • 相关阅读:
    OVS local network 连通性分析
    再部署一个 instance 和 Local Network
    ARM Linux系统调用的原理
    Linux内存管理中的slab分配器
    浅析基于ARM的Linux下的系统调用的实现
    分享一个查看十六进制的位的小程序
    mokoid 源代码下载
    shell中eval的使用问题
    批量去掉文件中的^M
    基于TINY4412的Andorid开发-------简单的LED灯控制
  • 原文地址:https://www.cnblogs.com/VCandy/p/5475547.html
Copyright © 2011-2022 走看看