网站首页 > 文章中心 > 其它

java产生验证码代码

作者:小编 更新时间:2023-08-24 14:06:15 浏览量:301人看过

怎么用Java代码实现一个验证码,求具体实现方法

package?util;

import?java.awt.Color;

import?java.awt.Font;

java产生验证码代码-图1

import?java.awt.Graphics;

import?java.awt.image.BufferedImage;

import?java.io.FileOutputStream;

import?java.io.IOException;

import?java.io.OutputStream;

import?java.util.Random;

import?javax.imageio.ImageIO;

public?final?class?ImageUtil?{

//?验证码字符集

private?static?final?char[]?chars?=?{?

'A',?'B',?'C',?'D',?'E',?'F',?'G',?'H',?'I',?'J',?'K',?'L',?'M',?'N',?

java产生验证码代码-图2

'O',?'P',?'Q',?'R',?'S',?'T',?'U',?'V',?'W',?'X',?'Y',?'Z',?

'a',?'b',?'c',?'d',?'e',?'f',?'g',?'h',?'i',?'j',?'k',?'l',?'m',?'n',?

'o',?'p',?'q',?'r',?'s',?'t',?'u',?'v',?'w',?'x',?'y',?'z'};

//?字符数量

//?干扰线数量

//?宽度

//?高度

//?字体大小

/**

*?生成随机验证码及图片

*/

public?static?Object[]?createImage()?{

StringBuffer?sb?=?new?StringBuffer();

//?1.创建空白图片

BufferedImage?image?=?new?BufferedImage(

WIDTH,?HEIGHT,?BufferedImage.TYPE_INT_RGB);

Graphics?graphic?=?image.getGraphics();

graphic.setColor(Color.LIGHT_GRAY);

graphic.fillRect(0,?0,?WIDTH,?HEIGHT);

Random?ran?=?new?Random();

for?(int?i?=?0;?i?SIZE;?i++)?{

//?取随机字符索引

int?n?=?ran.nextInt(chars.length);

//?设置随机颜色

graphic.setColor(getRandomColor());

//?设置字体大小

graphic.setFont(new?Font(

null,?Font.BOLD?+?Font.ITALIC,?FONT_SIZE));

//?画字符

graphic.drawString(

//?记录字符

sb.append(chars[n]);

}

for?(int?i?=?0;?i?LINES;?i++)?{

//?随机画线

graphic.drawLine(ran.nextInt(WIDTH),?ran.nextInt(HEIGHT),

ran.nextInt(WIDTH),?ran.nextInt(HEIGHT));

return?new?Object[]{sb.toString(),?image};

*?随机取色

public?static?Color?getRandomColor()?{

return?color;

public?static?void?main(String[]?args)?throws?IOException?{

java产生验证码代码-图3

Object[]?objs?=?createImage();

BufferedImage?image?=?(BufferedImage)?objs[1];

OutputStream?os?=?new?FileOutputStream("d:/1.png");

ImageIO.write(image,?"jpeg",?os);

os.close();

如何用Java代码段生成四位数字加字母的验证码?

下面简单的介绍他们的功能和用途,执行效率等.每个都有各自的优缺点看你是做甚什么方面的研究开发用..net,是网站编程,现在很多都用这个,但是这个语言编程都有统一思路,很好掌握.窒息那个效率不是很高;php 支持跨平台,很容易学会,执行的效率很高;asp是ASP.net的前身,它比较稳定,比.net要弱一点.但是比.net好学.jsp 是网页编程,这个学习大约一周就能搞定,不过这个得多实践,不然的话,时间长了,就容易忘记.

用java怎么制作验证码

原理:

代码如下

package s1;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Random;

import javax.imageio.ImageIO;

import javax.jms.Session;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class GetImage extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doPost(request, response);

public void doPost(HttpServletRequest request, HttpServletResponse response)

int width=100;

//获得一张图片

BufferedImage image=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

Graphics g=image.getGraphics();

g.setColor(Color.WHITE);

Random random=new Random();

// 填充的字符串

//缓存生成的验证码

StringBuffer stringbuffer=new StringBuffer();

//随机生成验证码的颜色和字符

{ //设置随机颜色

String str1=str.substring(index,index+1);

stringbuffer.append(str1);

//将生成的验证码存到服务器

request.getSession().setAttribute("checkcode", stringbuffer.toString());//key和value

//将图片发送给浏览器

ImageIO.write(image, "jpg", response.getOutputStream());

用户登录界面代码

public class Login extends HttpServlet {

// 获得用户提交的数据

String checkcode = request.getParameter("checkcode");

System.out.println(checkcode);

// 判断输入的验证码是不是符合

HttpSession session = request.getSession();// session是存放数据的地方

String str = (String) session.getAttribute("checkcode");

if (str != null) {

if (checkcode.compareToIgnoreCase(str) == 0) // 验证码忽略大小写

response.getWriter().println("验证码输入正确");

else

response.getWriter().println("验证码输入错误");

else response.getWriter().println("验证码失效");

// 使用完的验证码信息要删除,返回原页面再输一次,验证码就失效了

session.removeAttribute("checkcode");

以上就是土嘎嘎小编为大家整理的java产生验证码代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章