博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何用java制作验证码
阅读量:6335 次
发布时间:2019-06-22

本文共 1550 字,大约阅读时间需要 5 分钟。

hot3.png

我们都知道在网页或者一些软件登陆界面上,比如QQ会出现注册/登录验证码,那我们如何制作验证码呢?
其实,所谓的验证码,在我看来,就是制作一张图片,步骤如下:
1.获取指定长度的随机字符串,其声明函数是:public String getRandomStr(String []regter,int leg,int strlh);
三个参数为: 单个字符字符串数组,如:[]regter={"a","b","c"};,字符串数组长度,定义获得字符串长度;
实现函数如下:
public String getRandomStr(String []regter,int leg,int strlh)
{
   Random intRandom = new Random();
   StringBuffer str = new StringBuffer();
   for (int i = 0; i < strlh; i++)
  str.append(String.valueOf(regter[intRandom.nextInt(leg)]));
  return str.toString();
}
2.将字符串“画”在jpg格式图片上,其声明函数是:public void drawPicture();
实现函数如下:
public void drawPicture()
{
  BufferedImage image=new BufferedImage(Weight, Height,BufferedImage.TYPE_INT_RGB);//weight,height 是int型图片长宽变量
  Graphics g =image.getGraphics();
  g.setColor(Color.WHITE);
  g.fillRect(0, 0, Weight, Height);// ?---
  g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  RenderingHints.VALUE_ANTIALIAS_ON);
 调用 getRandomStr函数
  g.drawString();
  然后优化
}
3.生成jpg格式图片,其声明函数是:public void createJpg(String path);
实现函数如下:
public void createJpg(String path)
{
  try {
   
         FileOutputStream fos = new FileOutputStream(path);
         BufferedOutputStream bos = new BufferedOutputStream(fos);
   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
   encoder.encode(image);
   bos.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (ImageFormatException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}
这样工作基本完成。

转载于:https://my.oschina.net/u/563549/blog/59220

你可能感兴趣的文章
在Mac OS下配置PHP开发环境
查看>>
(转)介绍下Nuget在传统Asp.net项目中的使用
查看>>
C# ArcEngine 实现点击要素高亮并弹出其属性
查看>>
初识GO语言——安装Go语言
查看>>
SDK命令行操作
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>