精华内容
下载资源
问答
  • java验证码识别

    千次下载 热门讨论 2011-11-22 22:06:01
    java 验证码识别 ocr java 验证码识别 ocr
  • java 验证码

    2011-08-17 06:43:09
    java 验证码java 验证码java 验证码
    java 验证码java 验证码java 验证码
    展开全文
  • <dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2</version> </dependency>
  • Java短信验证码接口及java验证码接口案例demo
  • java 验证码设计

    2011-04-19 15:54:05
    java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码java 验证码...
  • Java 验证码

    千次阅读 2011-09-22 15:35:06
    下面的例子是用Servlet生成的一个验证码,例子是模拟登陆。 login.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

    下面的例子是用Servlet生成的一个验证码,例子是模拟登陆。

    login.jsp

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>验证码</title>
    </head>
    <body>
    	<form action="${pageContext.request.contextPath }/servlet/LoginServlet">
    	<table border="0" cellspacing="0" cellpadding="0" width="50%">
    		<tr>
    			<td width="20%" align="right">用户名:</td><td colspan="2"><input type="text" name="username" value="" size="34"/></td>
    		</tr>
    		<tr>
    			<td width="20%" align="right">密 码:</td><td colspan="2"><input type="password" name="password" value="" size="35"/></td>
    		</tr>
    		<tr>
    			<td width="20%" align="right">验证码:</td><td width="21%"><input type="text" name="code" value="" size="15"/></td><td align="left"><img src="${pageContext.request.contextPath }/servlet/ImageCodeMakerServlet" width="100px" height="30" /></td>
    		</tr>
    	</table>
    	</form>
    </body>
    </html>

    在web.xml中

    <servlet>
      	<servlet-name>login</servlet-name>
      	<servlet-class>com.web.LoginServlet</servlet-class>
      </servlet>
      <servlet>
      	<servlet-name>imageCodeMakerServlet</servlet-name>
      	<servlet-class>com.web.ImageCodeMakerServlet</servlet-class>
      </servlet>
      <servlet-mapping>
      	<servlet-name>login</servlet-name>
      	<url-pattern>/servlet/LoginServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
    	<servlet-name>imageCodeMakerServlet</servlet-name>
    	<url-pattern>/servlet/ImageCodeMakerServlet</url-pattern>
      </servlet-mapping>


    在后台Servlet里

    import java.io.IOException;
    
    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 LoginServlet extends HttpServlet{
    
    	@Override
    	protected void service(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		String username = request.getParameter("username");
    		String password = request.getParameter("password");
    		String code = request.getParameter("code");// 页面,用户输入的验证码
    		
    		HttpSession session = request.getSession();
    		String randCode = (String)session.getAttribute("randCode");// 得到系统生成的验证码
    		
    		if(randCode.equals(code)){// 验证码输入正确
    			System.out.println("验证码输入正确");
    		}else{
    			System.out.println("验证码不正确");
    		}
    	}
    }
    


    ImageCodeMakerServlet如下

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.util.Random;
    
    import javax.imageio.ImageIO;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class ImageCodeMakerServlet extends HttpServlet {
    
    	public ImageCodeMakerServlet() {
    		super();
    	}
    
    	public void destroy() {
    		super.destroy(); 
    	}
    
    	public void service(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		// 首先设置页面不缓存
    		response.setHeader("Pragma", "No-cache");
    		response.setHeader("Cache-Control", "no-cache");
    		response.setDateHeader("Expires", 0);
    
    		// 定义图片的宽度和高度
    		int width = 90, height = 40;
    		// 创建一个图像对象
    		BufferedImage image = new BufferedImage(width, height,
    				BufferedImage.TYPE_INT_RGB);
    		// 得到图像的环境对象
    		Graphics g = image.createGraphics();
    
    		Random random = new Random();
    		// 用随机颜色填充图像背景
    		g.setColor(getRandColor(180, 250));
    		g.fillRect(0, 0, width, height);
    		for (int i = 0; i < 5; i++) {
    			g.setColor(getRandColor(50, 100));
    			int x = random.nextInt(width);
    			int y = random.nextInt(height);
    			g.drawOval(x, y, 4, 4);
    		}
    		// 设置字体,下面准备画随机数
    		g.setFont(new Font("", Font.PLAIN, 40));
    		// 随机数字符串
    		String sRand = "";
    		for (int i = 0; i < 4; i++) {
    			// 生成四个数字字符
    			String rand = String.valueOf(random.nextInt(10));
    			sRand += rand;
    			// 生成随机颜色
    			g.setColor(new Color(20 + random.nextInt(80), 20 + random
    					.nextInt(100), 20 + random.nextInt(90)));
    			// 将随机数字画在图像上
    			g.drawString(rand, (17 + random.nextInt(3)) * i + 8, 34);
    
    			// 生成干扰线
    			for (int k = 0; k < 12; k++) {
    				int x = random.nextInt(width);
    				int y = random.nextInt(height);
    				int xl = random.nextInt(9);
    				int yl = random.nextInt(9);
    				g.drawLine(x, y, x + xl, y + yl);
    			}
    		}
    
    		// 将生成的随机数字字符串写入Session
    		request.getSession(false).setAttribute("randcode", sRand);
    		// 使图像生效
    		g.dispose();
    		// 输出图像到页面
    		ImageIO.write(image, "JPEG", response.getOutputStream());
    	}
    
    	/**
    	 * Initialization of the servlet. <br>
    	 * 
    	 * @throws ServletException
    	 *             if an error occurs
    	 */
    	public void init() throws ServletException {
    		// Put your code here
    	}
    	/**
    	 * 产生一个随机的颜色
    	 * 
    	 * @param fc
    	 *            颜色分量最小值
    	 * @param bc
    	 *            颜色分量最大值
    	 * @return
    	 */
    	public Color getRandColor(int fc, int bc) {
    		Random random = new Random();
    		if (fc > 255){
    			fc = 255;
    		}
    		if (bc > 255){
    			bc = 255;
    		}
    		int r = fc + random.nextInt(bc - fc);
    		int g = fc + random.nextInt(bc - fc);
    		int b = fc + random.nextInt(bc - fc);
    		return new Color(r, g, b);
    	}
    
    }
    


     

    展开全文
  • java验证码的源码

    2011-07-21 10:50:56
    java 验证码 java 验证码 java 验证码 java 验证码
  • java验证码方案

    2014-07-02 10:21:13
    java验证码方案 Serverlet 验证码方案.rar (1.7 KB) 下载次数: 4

    java验证码方案 Serverlet

    展开全文
  • java验证码识别--5

    2015-01-08 17:34:40
    java验证码识别--1 http://blog.csdn.net/problc/article/details/5794460 java验证码识别--2 http://blog.csdn.net/problc/article/details/5797507 java验证码识别--3 ...

    java验证码识别--1

    http://blog.csdn.net/problc/article/details/5794460

    java验证码识别--2

    http://blog.csdn.net/problc/article/details/5797507

    java验证码识别--3

    http://blog.csdn.net/problc/article/details/5800093

    java验证码识别--4

    http://blog.csdn.net/problc/article/details/5846614

    java验证码识别--5

    http://blog.csdn.net/problc/article/details/5983276


    (本文仅用于学习研究图像匹配识别原理,不得用于其他用途。)

    完整eclipse工程http://download.csdn.net/detail/problc/3829004

    前面用的都是用的比较笨的,按像素比较的方法,属于靠感觉,没有什么理论支持的东西,效率也不高。

    这里我再试试用SVM的方法。用的是libsvm的java版。

    前面的步骤还是一样的,去干扰,分割。

    把训练的图片缩放成16*16的大小。

    1

    把每张图片转换成libsvm的data格式

    label indexi:valuei

    2 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 14:1 15:1 16:0 17:0 18:0 19:0 20:1 21:1 。。。。

    3 1:0 2:0 3:0 4:0 5:1 6:0 7:0 8:0 9:0 10:0 11:0 12:1 13:0 14:0 15:0 16:0 17:0 18:1 19:1 20:1 21:1 。。。。

    前面的label就是对应的图片的数字,indexi表示第i个像素,valuei表示第i个像素的值,像素为黑是valuei为1,白则为0(更合理的方法好像是黑为0.999,白为0.001)

    将转换之后的数据存到data.txt里面

    然后调用libsvm的svmtrain data.txt.

    这样会得到data.txt.model

    svm_type c_svc 
    kernel_type rbf 
    gamma 0.00390625 
    nr_class 7 
    total_sv 187 
    rho -0.030305073403358983 -0.06465012487258254 -0.013473850514953143 -0.2057364574548591 0.2585742203962866 -0.022815082566896124 -0.05173711373002207 0.02684272876633484 -0.08990192422316207 0.49014282977244295 -0.007697833034227977 0.12210859964254706 -0.011622244796025883 0.29303019765332594 0.07690393951197239 -0.06284951942287494 0.4075315521524534 -0.024304015205013997 0.273659082567747 0.09997688395282468 -0.3551440654987311
    label 2 3 4 5 7 8 9 
    nr_sv 27 32 20 26 19 39 24 
    SV 
    1.0 0.0 1.0 0.09512009049662619 1.0 1.0 1:0.0 2:0.0 3:0.0 4:0.0 5:0.0 6:0.0 7:0.0 8:0.0 9:0.0 10:0.0 11:0.0 12:0.0 13:0.0 14:1.0 15:1.0 16:0.0 17:0.0 18:0.0 19:0.0 20:1.0 21:1.0 22:1.0 23:0.0 24:0.0 25:0.0 26:0.0 27:0.0 28:1.0 29:1.0 30:1.0 31:1.0 32:1.0 33:0.0 34:0.0 35:1.0 36:1.0 37:1.0 38:1.0 39:0.0 40:0.0 41:0.0 42:0.0 43:1.0 44:1.0 45:1.0 46:1.0 47:1.0 48:0.0 49:0.0 50:0.0 51:1.0 52:1.0 53:1.0 54:1.0。。。。。。

    得到model之后,把要识别的图片同样弄成libsvm的格式,存成predict.txt

    label indexi:valuei

    0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 14:1 15:1 16:0 17:0 18:0 19:0 20:1 21:1 。。。。

    因为要识别的图片还不知道是哪个数字,所以其中label可以填成任何数

    然后用svmpredict predict.txt data.txt.model output.txt

    这样识别结果就在output.txt里面了。

    展开全文
  • java 验证码相关问题

    2014-01-19 18:01:17
    java 验证码相关问题 最近用jsp+servlet做了一个验证码. 想页面在不刷新的情况下换验证码出了一点点问题: function numberChick(num){  num.src = 'authImgByNumber';  } 点击图片就请求servlet然后重新返回...
  • Java 验证码图片不加载处理办法找到tomcat/bin目录,编辑catalina.sh**Java在Linux下 不能处理图形的解决办法 Can't connect to X11 window server**解决办法:另一种解决方法 找到tomcat/bin目录,编辑catalina.sh ...
  • java验证码识别--1

    万次阅读 多人点赞 2010-08-07 01:22:00
    java验证码识别--1 http://blog.csdn.net/problc/article/details/5794460 java验证码识别--2 http://blog.csdn.net/problc/article/details/5797507 java验证码识别--3 ...
  • Java验证码—ValidateCode的使用

    千次阅读 2018-05-27 22:20:50
    Java验证码—ValidateCode的使用 一、关于为何使用验证的解释 在目前的网页的登录、注册中经常会见到各种验证码。其目的便是为了:防止暴力破解 .因为只要CPU性能较强,便可以在慢慢尝试密码的过程中来破解用户...
  • JAVA 验证码生成工具类及使用

    千次阅读 2017-03-06 19:06:21
    JAVA 验证码生成工具类及使用 java生成的验证码机制,是在指定的字符中随机抽取字符,可以指定字符的个数(验证码个数),然后通过java.awt.image.BufferedImage;创建画布,拿到 java.awt.Graphics;画笔在指定的...
  • JAVA验证码生成

    2015-03-22 13:09:20
    自己的项目中用到的一个生成验证码的代码,大家可以直接使用:import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io....
  • Java验证码实现-EasyCaptcha

    千次阅读 2020-07-07 08:59:38
    EasyCaptcha是一个Java图形验证码库,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。 使用 <dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha&...
  • springMVC+Java验证码完善注册功能

    千次阅读 2016-06-05 15:35:20
    这篇文章简单的写了一个java验证码,为之前写过的springMVC注册功能加上验证码,验证码的作用就不多说了,防止机器人程序恶意注册什么的。。。 基本的注册功能的实现请查看之前的文章Maven搭建springMVC+spring+...
  • 【java】Java验证码功能实现

    千次阅读 2017-02-08 18:29:49
    下面小编会带领大家一起用java完成一个验证码的功能。二、验证码的作用 一般可以防止有人利用机器人自动批量注册、对特定的注册用户用特定程序暴力破解方式进行不断的登录,灌水。因为验证码是一个混合了数字和符号...
  • JAVA验证码原理及实现

    2011-06-15 22:28:24
    不得不承认,网络确实是个好东西,只要在google或百度上搜索一下“java验证码”,就可以找到无数实现代码,但却很少有文章很仔细的讲解到底是如何实现验证码的生成的,比如现在要自己写一个生成验证码的java类,首先...
  • session实现一次性验证码,同时附带有java验证码程序 基本原理 和表单重复提交一致。 1.在原表单页面,生成一个验证码的图片,生成图片的同时,需要把该图片中的字符串放入到session中。 2.在原表单页面,定义一个...
  • java验证码简单实现

    千次阅读 2020-05-30 18:43:51
    HttpSession session) throws IOException { //使用Hutool插件定义图形验证码的长和宽,验证码个数,干扰线条数 LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100,4,20); //把验证码输出到...
  • Java验证码系列(2):JSP版加减乘除运算验证码 发表于:2011-03-12 | Author:屁孩 | Categories:Java编程 | Tags: Java、验证码 | 查看:849 次  在上篇文章中介绍了什么是验证码,本文将讲述在Java中如何实现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,907
精华内容 27,162
关键字:

java验证码

java 订阅