java生成图片验证码示例程序

代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陆页面</title>
<script type="text/javascript">
 function refresh() {
  loginForm.image.src = "creatImage.jsp";
 }
</script>
</head>
<body>
<h1>欢迎登陆本系统</h1><br>
<form action="" method = "post" name="loginForm">
 <label>账号:<input name="username" type="text" /></label><br>
 <label>密码:<input name="password" type="password" /></label><br>
 <label>验证码:<input name="code" type="text" /></label>
 <!-- 将验证码当做图片处理 -->
    <img name="image" border="0" src="creatImage.jsp" onclick="refresh()" />
 <input type="submit" value="登陆" />
</form>
</body>
</html>

代码如下:

<%@page import="java.util.Random"%>
<%@page import="java.awt.Graphics"%>
<%@page import="javax.imageio.*"%>
<%@page import="java.awt.*"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
 final char[] str = {'0','1','2','3','4','5','6','7','8','9',
    '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','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'};
 int width=100,height=60;
 BufferedImage bi = new BufferedImage(width,height,
   BufferedImage.TYPE_INT_RGB);
 Graphics g = bi.getGraphics();
 g.setColor(new Color(200,200,200));
 g.fillRect(0, 0, width, height);
 Random rnd = new Random();
 StringBuffer sb = new StringBuffer("");
 //产生四位数的字母数字验证码,各个数字的颜色也随即
 for(int i=0; i<4; i++) {
  int num = rnd.nextInt(str.length);
  Color c = new Color(rnd.nextInt(256),
    rnd.nextInt(256),rnd.nextInt(256));
  g.setColor(c);
  g.setFont(new Font("", Font.BOLD+Font.ITALIC, 20));
  g.drawString(str[num]+"", 10, 17);
  sb.append(str[num]);
 }
 //划干扰线
 for(int i=0; i<10; i++) {
  Color c = new Color(rnd.nextInt(256),
    rnd.nextInt(256),rnd.nextInt(256));
  g.setColor(c);
  g.drawLine(rnd.nextInt(width), rnd.nextInt(height),
    rnd.nextInt(width), rnd.nextInt(height));
 }
 String s = new String(sb);
 /*
 若是产生四位数字,则nextInt(8999) + 1000;
 然后String.valueOf转换为String
 */
 //验证码存入session里,方便在登陆校检页比对
 session.setAttribute("image",s);
 //输出到页面
 ImageIO.write(bi,"JPEG",response.getOutputStream());
 /*
 加入下面这两句什么作用呢?
 否则报异常: java.lang.IllegalStateException: getOutputStream()
 has already been called for this response
 不管原因了
 */
 out.clear();
 out = pageContext.pushBody();

%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图片生成</title>
</head>
<body>
</body>
</html>

时间: 2013-11-27

Java实现仿淘宝滑动验证码研究代码详解

通过下面一张图看下要实现的功能,具体详情如下所示: 现在我就来介绍些软件的其它功能.希望大家有所受益. 模拟人为搜索商品 在刷单的时候,不能直接拿到一个商品网址就进入购买页面吧,得模拟人为搜索. 在这一个过程中有两个难点: 1)商品列表的异步加载 ; 2)翻页并且截图; 在园子里,我就不在关公面前耍大刀了. 直接上关键代码: i:搜索商品,并且翻页 public bool? SearchProduct(TaskDetailModel taskDetailData) { bool? result

Java实现验证码具体代码

这里实现我使用到了struts2模拟一个登录功能来验证java实现的验证码功能. Java实现验证码的步骤: 1.创建RandomImageGenerator.java类,该类实现验证码图片的生成 2.创建一个servlet类,RandomImageServlet.java,将生成的验证码输出到页面 3.创建一个Action类,LoginAction.java,控制登录 4.配置struts.xml一个web.xml文件 5.编写页面 具体实现用代码表达 1.创建RandomImageGener

Java 随机生成验证码(支持大小写字母、数字、随机字体)的实例

代码如下所示: 复制代码 代码如下: package com.hoo.util; import java.awt.Color;  import java.awt.Font;  import java.awt.Graphics;  import java.awt.image.BufferedImage;  import java.util.Random; import javax.imageio.ImageIO;  import javax.servlet.http.HttpServletRequ

Java Web开发之图形验证码的生成与使用方法

本文实例讲述了Java Web开发之图形验证码的生成与使用方法.分享给大家供大家参考.具体如下: 图形验证码的主要目的是为了增强的安全性,增加用户通过遍历所有可能性来破解密码的难度. 图形验证码的使用包括如下3部分: ① 图形验证码的生成: ② 在页面中的使用: ③ 验证: 1.图形验证码的生成 假设在Servlet生成图形验证码,在JavaBean或者JSP中生成的基本过程是相同的.设计如下过程: ① 设置响应的文档类型: ② 生成随机码: ③ 把随机码保存到session中: ④ 生成图片:

java实现网页验证码功能

本文实例为大家分享了java网页验证码的实现代码,供大家参考,具体内容如下 Servlet: package cn.bdqn.servlet; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.

java登录验证码实现代码

VerifyCodeServlet.java类: 复制代码 代码如下: package com.spring.controller;import java.awt.Color;         import java.awt.Font;         import java.awt.Graphics2D;         import java.awt.image.BufferedImage;         import java.util.Random;         import ja

JAVA实现利用第三方平台发送短信验证码

前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过sessionid判断对应的session,用户输入的验证码再与session记录的验证码进行比较. 为了防止有广告嫌疑

Java随机生成手机短信验证码的方法

本文实例讲述了Java随机生成手机短信验证码的方法.分享给大家供大家参考,具体如下: /** * 创建指定数量的随机字符串 * @param numberFlag 是否是数字 * @param length * @return */ public static String createRandom(boolean numberFlag, int length){ String retStr = ""; String strTable = numberFlag ? "1234

java 图片验证码的实现代码

复制代码 代码如下: makeCertPic.java package pic; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imagei

java实现验证码类生成中文验证码

复制代码 代码如下: package xwcms.net.service;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;import javax.imageio.ImageIO;im

python PIL模块与随机生成中文验证码

在这之前,你首先得了解Python中的PIL库.PIL是Python Imaging Library的简称,PIL是一个Python处理图片的库,提供了一系列模块和方法,比如:裁切,平移,旋转,改变尺寸等等.在PIL库中,任何一个图像都是用Image对象来表示的,所以要加载一张图片,最简单的形式如下: from PIL import Image image = Image.open("1.jpeg") 在PIL库中,最常用的模块有Image,ImageDraw,ImageEnhance

一个简单安全的PHP验证码类、PHP验证码

一,验证码示例 二,php验证码类,secoder.class.php <?php /** * 安全验证码 * * 安全的验证码要:验证码文字扭曲.旋转,使用不同字体,添加干扰码 * * @author 流水孟春 <cmpan(at)qq.com> * @link http://labs.yulans.cn/YL_Security_Secoder * @link http://wiki.yulans.cn/docs/yl/security/secoder */ class YL_Secu

Python 随机生成中文验证码的实例代码

python代码 复制代码 代码如下: # -*- coding: utf-8 -*- import Image,ImageDraw,ImageFont import random import math, string class RandomChar(): """用于随机生成汉字""" @staticmethod def Unicode(): val = random.randint(0x4E00, 0x9FBF) return unichr

一个好用的PHP验证码类实例分享

分享一个好用的php验证码类,包括调用示例.说明:如果不适用指定的字体,那么就用imagestring()函数,如果需要遇到指定的字体,就要用到imagettftext()函数.字体的位置在C盘下Windows/Fonts. 参考了网上的php 生成验证码的方法,以及php 图片验证码和php 中文验证码的生成方法.用到了PHP GD库的相关知识. 1,生成验证码的类 VerificationCode.class.php 复制代码 代码如下: <?php      class Verificat

PHP编写的图片验证码类文件分享

适用于自定义的验证码类! <?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ Class Image{ private $img; public $width = 85; pub

Python生成随机验证码的两种方法

使用python生成随机验证码的方法有很多种,今天小编给大家分享两种方法,大家可以灵活运用这两种方法,设计出适合自己的验证码方法. 方法一: 利用range方法,对于range方法不清楚的同学,请参考文章<python开发的range()函数> # -*- coding: utf-8 -*- import random def generate_verification_code(len=6): ''' 随机生成6位的验证码 ''' # 注意: 这里我们生成的是0-9A-Za-z的列表,当然你

php生成图片验证码-附五种验证码

以前输出验证码的时候用过一个方法,在前台用JS生成验证码字符串,再传递到后台用PHP输出验证码图像.这样在验证时就不需要使用$_SESSION传递验证码的值,直接用JS比较生成的字符串和输入的字符串是否相等即可. 本文以实例演示5种验证码,并介绍生成验证码的函数.PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中. 1.HTML 5中验证码HTML代码如下: <div class="demo"> <h3>1.数字验证码&

Java生成图形验证码工具类

生成验证码效果 ValidateCode.java 验证码生成类 package cn.dsna.util.images; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; import java.io.Ou

java 验证码的生成实现

java 验证码的生成实现 所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰,例如随机画数条直线或者画一些点,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能.验证码中之所以加上凌乱的直线是为了防止某些人使用OCR软件识别随机产生的数字或符号,从而达到恶意破解密码.刷票.论坛灌水.刷页等恶意行为.下面就开始直接上代码吧: 下面是Demo的文件组织结构 下面就是index.jsp的代码.主要功能是单击浏览器上的验证码图片,实现验证码的更