验证码具体写法

原创 2016年08月31日 09:20:36
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;
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Servlet写验证码

下面让我们来说一下为什么在项目开发中要用到验证码,以及使用验证码会给我们的项目带来什么好处? 1、如果开发中不使用验证码会给项目带来那些危害: ①、如果对用户不断登录的话,可以破解用户密码 ②、对某个...

ssh的验证方法具体过程

SSH SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

验证码 verifycode 留存可用

验证码 verifycode 留存可用

验证码工具类

import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D...

彩色字体验证码

 package com.fit; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; impo...

空心字体验证码

using System; using System.Web; using System.Drawing; using System.Drawing.Imaging; using System...

验证码工具类

import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffere...

java验证码 工具类

这个方法直接生成验证码 前台只需要把地址写对就能直接用,可以当作工具类用,不需要访问 页面加载完成就可以了 package www.sshblank.util; import java.awt.Co...

验证码工具类

花了一个多小时,写了一个获取验证码的工具类,具体代码如下 主要功能: 获取一张随机图片,显示验证码 以字符串形式保存本次随机图片上的字符 效果图: 代码如下:package com.hu...

PHP验证码工具类

<?php session_start(); // header("Content-type:text/html;charset=utf-8"); //使用php绘图技术,画出自...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)