生成纯数字的验证码
来源:互联网 发布:时时彩组六杀号软件 编辑:程序博客网 时间:2024/06/08 11:43
public class RandomCode { private int width = 84; private int height = 28; public void getCode(HttpServletRequest request,HttpServletResponse response) throws IOException{ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); //创建一个随机数生成器类 Random random = new Random(); g.setColor(Color.WHITE); g.fillRect(0, 0, width, height); //创建字体,字体的大小应该根据图片的高度来定 Font font = new Font("雅黑", Font.ITALIC, 30); //设置字体 g.setFont(font); //画边框 g.setColor(Color.BLACK); g.drawRect(0, 0, width, height); //随机产生160条干扰线,使图像中的认证码不易被其他程序探测到 g.setColor(Color.GRAY); for (int i = 0; i < 10; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x+xl, y+yl); } //randomCode用于保存随机产生的验证码,以便用户登录后进行验证 StringBuffer randomCode=new StringBuffer(); int red=0,green=0,blue=0; //随机产生4位数字的验证码 for (int i = 0; i < 5; i++) { //得到产生的随机验证码数字 String strRand = String.valueOf(random.nextInt(10)); //产生随机的颜色分量来构造颜色值,这样输出的每位数字的颜色值都将不同 red=random.nextInt(200); green=random.nextInt(200); blue=random.nextInt(200); //产生随机高度13至height之间 float imght = 0; while(imght<=12){ imght = Float.parseFloat(String.valueOf(random.nextInt(height))); } //用随机产生的颜色将验证码绘制到图像中 g.setColor(new Color(red, green, blue)); g.drawString(strRand, 13*i+6, height); //将产生的四个随机数组合在一起 randomCode.append(strRand); } //将四位数字的验证码保存到Session中 HttpSession session = request.getSession(); session.setAttribute("randomCode", randomCode.toString()); //禁止图像缓存 response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("image/jpeg"); //将图像输出到Servlet输出流中 ServletOutputStream stream = response.getOutputStream(); ImageIO.write(image, "jpeg", stream); stream.close(); }}
阅读全文
0 0
- 生成纯数字的验证码
- Java版纯字母、纯数字、字母数字组合验证码的生成
- C#生成验证码(纯数字)
- 纯数字验证码
- 纯数字验证码
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]
- 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]C#
- C# 验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合]
- 数字验证码生成
- 生成数字验证码
- 超出规定范围出现省略号...
- POJ-1141 Brackets Sequence 区间dp
- 线材规格
- spark学习-55-源代码:SparkSession的的创建
- CIKM'2017 最佳论文鉴赏
- 生成纯数字的验证码
- 语音识别的历史和产品
- 【降维】之sklearn中PCA库讲解与实战
- Unity 手游项目优化建议(杂文)
- 使用java8进行分组
- tomcat 启动 : /WEB-INF/lib. May be locked by another process
- SpirngMVC系统启动系统配置初始化执行顺序以及防止onApplicationEvent执行两次
- Python selenium 后台运行模拟登录操作(三)
- 商业规则引擎和开源规则引擎的测试对比