JSP验证码大全之数字验证码

验证码应用在各种场合中,十分广泛,在多种多样的系统或软件中的新用户帐户注册、用户登录、网 站统一登陆或者用户在网站发布信息模块发布文章或内容都添加的随机码功能,对用户操作过程进行一种 验证,使用验证码的目的就是为了避免网络中的自动注册程序或者自动发布程序的滥用。 验证码的原理 其实就是随机选择一些字符码以将字符码以图片的形式展现在软件验证界面或验证页面上,当用户在进行 提交操作的同时需要将图片上的验证码输入并同时提交,如果提交的字符验证码与服务器session保存的 字符码相同,则认为提交信息有效,否则拒绝提交。在使用验证码过程中,为了避免自动分析程序解析图 片并获得验证信息,通常需要在图片上随机生成一些干扰线或者将复杂的字符对图片进行扭曲模糊,从而 增加了自动识别程序分析验证图片的难度。

JSP验证码源码大全将分别用几个篇幅的内容来介绍在JSP中几种验证码的实现源码以及使用。

一、JSP中产生数字验证码源码 

数字验证码是一种最常用的验证字符码形式,以下为数字实现的JSP源码:

Num.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
  Color getRandColor(int cc,int bb)
  {
    Random random = new Random();
    if(fc>255) cc=255;
    if(bc>255) bb=255;
    int r=cc+random.nextInt(bb-cc);
    int g=cc+random.nextInt(bb-cc);
    int b=cc+random.nextInt(bb-cc);
    returnnew Color(r,g,b);
  } //获取随机颜色
%>
<%
  response.setHeader("Pragma","No-cache");
  response.setHeader("Cache-Control","no-cache");
  response.setDateHeader("Expires", 0);
  int width=80; //定义验证码图片的长度
  int height=30; //定义验证码图片的宽度
  BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
  Graphics g = image.getGraphics();
  Random random = new Random();
  g.setColor(getRandColor(200,250));
  g.fillRect(0, 0, width, height);
  g.setFont(new Font("Times New Roman",Font.PLAIN,18));
  //定义字体形式
  g.setColor(getRandColor(160,200));
  for (int i=0;i<155;i++)
  {
    int i_x = random.nextInt(width);
    int i_y = random.nextInt(height);
    int i_xl = random.nextInt(12);
    int i_yl = random.nextInt(12);
    g.drawLine(i_x,i_y,i_x+i_xl,i_y+i_yl);
  }
  //用线条画背景
  String s_Rand="";
  for (int i=0;i<4;i++)
  {
    String rand=String.valueOf(random.nextInt(10));
    s_Rand+=rand;
    g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt (110)));
    g.drawString(rand,13*i+6,16);
  }
  //产生4位随机码
  session.setAttribute("rand",s_Rand);
  //将验证码存入Session中
  g.dispose();
  ImageIO.write(image, "JPEG", response.getOutputStream());
  //输出验证图片
  out.clear();
  out = pageContext.pushBody();
%>

接下来文章将介绍JSP中的中文验证码、其他JAVA验证码的实现以及对JSP中对验证码的调用和使用的 有关内容,下一篇文章将介绍有关JSP中文验证码的源码实现。

时间: 2024-10-26 10:25:38

JSP验证码大全之数字验证码的相关文章

JSP验证码大全之中文验证码

在上一篇内容中介绍了有关JSP中产生数字验证码图片的过程,本文将继续介绍有关JSP中的另一种验 证码的实现,即中文验证码在JSP中的实现,使用中文验证码的好处是能提高验证的有效性,提高验证的 安全度,因为中文相对于英文或数字笔画结构相对比较复杂,从而增加了分析程序解析验证码图片并读取 验证信息的难度.在文中并分析中文验证的实现过程. 二.JSP中实现中文验证码源码如下: ChineseVal.jsp <%@ page pageEncoding = "gb2312" content

php生成4位数字验证码的实现代码_php技巧

在php中实现验证码还是很方便的,关键点在于掌握php gd库与session的用法. 纵观网上php 生成验证码的例子,无不是php gd库与session相结合,并利用php 生成随机数的方法来完成. PHP验证码,可以分为很多种,包括 php 图片验证码,php 随机验证码,以及php 中文验证码等,根据不同的应用场合来使用不同的验证码. 这里分享一个php数字验证码,供大家参考. 4位数字验证码 /* *Filename:authpage.php */ session_start();

JSP验证码大全之验证码使用与乱码解决

以上两篇文章的内容介绍了有关JSP中产生数字验证码跟中文验证码的源代码并做了分析,本文中介绍 如何对以上产生的数字跟中文验证码进行使用,以及如何解决中文验证码的乱码无法正确验证的问题. 对验证码的使用分为两个部分,分别为验证码的调用和验证过程,以下分别做说明介绍. 三.在JSP中调用验证码 使用验证码直接在图片处调用产生验证码的JSP文件即可,同时在刷新验证码按钮处的js代码中使用 JSP验证码文件,页面源码如下. <form id="dForm" method=post act

javascript-求一随机生成四位数字验证码的代码,并验证输入的与生成的是否一致

问题描述 求一随机生成四位数字验证码的代码,并验证输入的与生成的是否一致 求一随机生成四位数字验证码的代码,并验证输入的与生成的是否一致 解决方案 这个和js没有关系.验证码的作用是防止机器模仿人滥用的.因为机器识别不规则图像很困难,但是人可以做到这一点. 所以这个需要服务器去验证,如果是客户端验证,那么攻击者很容易破解你的生成和验证环节,验证码也就形同虚设了. 你需要一种服务器编程语言.比如jsp或者asp等等,随机产生验证码,用绘图的方法绘制,加上干扰线.噪点,进行文字的变形等等输出到客户端

javascript实现数字验证码的简单实例介绍

 本篇文章主要是对javascript实现数字验证码的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 实例如下: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.

dedecms中显示数字验证码的修改方法_php技巧

输入字母验证码,俺觉得特烦,特别还要输入大写字母.于是找到文件并修改成数字验证码. 修改文件 验证码文件位置 include\validateimg.php 找到 for($i=0;$i<4;$i++) {    $rndstring .= chr(mt_rand(65,90)); } 改成 for($i=0;$i<4;$i++) {    $rndstring .= chr(mt_rand(48,57)); } 这个函数是产生随机字符,看见里面的数字没有,它就是要产生字符键盘码的范围,原来的

jquery禁止输入数字以外的字符的示例(纯数字验证码)_jquery

纯数字验证码的时候用到的,整理如下: 复制代码 代码如下: $('#mobile-vcode').unbind();$("#mobile-vcode").bind("keyup change",function () {    $(this).val($(this).val().replace(/\D/g,''));    if($(this).val().length==4){        /*ajax检测验证码是否正确,正确则激活按钮*/    }});

php实现的数字验证码及数字运算验证码_php技巧

本文实例讲述了php实现的数字验证码及数字运算验证码.分享给大家供大家参考.具体如下: 1. 数字验证码: <?php //第一个实例是数字验证码,最常见的验证码.多少个数字可以由自己决定. //$num是生成的验证码包含几个数字 getValidate(4,60,20); function getValidate($num,$w,$h){ $code = ""; for($i=0;$i<$num;$i++){ $code .= rand(0,9); } //code变量最

PHP写的简单数字验证码实例

用PHP写的随机生成的5位数字验证码 $yzm = ""; for($i=0;$i<5;$i++) { $a = rand(0,9); $yzm.= $a; } echo $yzm; 以上这篇PHP写的简单数字验证码实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家.