数字和字母组合并生成图片的验证码祥解

原创 2003年11月19日 12:18:00

  大家经常在网上登陆的时候经常会看到让你输入验证码,有的是文字的,有的呢是图片,比如chinaren.com校友录中留言的时候,我们就会看到数字图片验证码;网上关于数字文字验证码实现方法的相关资料很多,而我们这里介绍的是数字和字母随机组成的并且生成图片的验证码的实现方法。看起来很复杂、其实很简单的,大家跟着我往下看:

  首先,我们先介绍一下设计思路,数字和字母的随机组合生成验证码,然后将验证码生成图片,这里“数字和字母的组合”应该是随机取出来的;如果是专门的数字验证码,我们可以这样实现:

  ycodenum=4 '验证码的位数,或者说成个数
  for i=1 to ycodenum
    Randomize '初始化随机数发生器
    ycode=ycode&Int((9*Rnd)) 'rnd是随机数,从0到1之间的任意实数,这里获得0到9之间的整数
  next

  response.write ycode '就可以输出数字验证码(4位)

  然而,我们要让数字和字母同样随机生成,这里我们可以用到数组来实现这种效果,如下:

  ychar="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" '将数字和大写字母组成一个字符串
  yc=split(char,",") '将字符串生成数组
  ycodenum=4
  for i=1 to ycodenum
    Randomize
    ycode=ycode&yc(Int((35*Rnd))) '数组一般从0开始读取,所以这里为35*Rnd
  next

  response.write ycode
  
  现在看看输出结果是不是数字和字母随机组合的呢?

  下面看看怎样生成图片,这个也许有些朋友知道:asp不能生成图片,必须使用asp组件。不错,我们这里使用的是ASP图象组件shotgraph。有一点大家注意,服务器不是自己的不能用哦,因为你装不了这组件。

  组件的下载地址:http://www.wrclub.net/down.aspx?id=545,至于怎么注册,这里就不多说了,网上有很多资料

  我们看看生成图片的代码:

  ychar="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" '将数字和大写字母组成一个字符串
  yc=split(char,",") '将字符串生成数组
  ycodenum=4
  for i=1 to ycodenum
    Randomize
    ycode=ycode&yc(Int((35*Rnd))) '数组一般从0开始读取,所以这里为35*Rnd
  next

  Response.Clear
  Response.ContentType="image/gif"
  set obj=Server.CreateObject("shotgraph.image")
  x=55 '图片的宽
  y=26 '图片的高
  obj.CreateImage x,y,8 '8是图片的颜色8位
  obj.SetColor 0,55,126,222
  obj.SetColor 1,255,255,255

  obj.CreatePen "PS_SOLID",1,0
  obj.SetBgColor 0
  obj.Rectangle 0,0,x-1,y-1
  obj.SetBkMode "TRANSPARENT"
  obj.CreateFont "Arial",136,18,1,False,False,False,False
  obj.SetTextColor 1
  obj.TextOut 5,4,ycode&" "

  img=obj.GifImage(-1,1,"")
  Response.BinaryWrite (img)

  针对以上代码也就是说shotgraph普通的画图的原理请参考:http://www.pconline.com.cn/pcedu/empolder/wz/asp/10204/45207.html

  OK,这样就完成了,我们来看看效果吧!

  说明,以上生成图片组件和代码由毒爱提供,大家有什么建议或者更好的方法,可以到网人论坛(http://bbs.wrclub.net)发贴,网人论坛始终欢迎您的到来!

原始出处:http://www.wrclub.net/show.aspx?id=1524

验证码设计-Javaweb(字母数字组合和纯汉字组合,内附常用汉字Unicode编码值)

设计四位验证码。要求字母和数字扭曲,验证码表面有干扰线。两种验证码内容,一是汉字,二是大小写字母加上十位数字。(内附简单常用的汉字Unicode码值) 基本步骤: 1) 创建一张画布。采用Buf...
  • xuxuzwl
  • xuxuzwl
  • 2017年06月29日 10:22
  • 302

Java随机生成字母数字组合的验证码

字母与数字的ASCII码 目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Informatio...
  • qq_36948778
  • qq_36948778
  • 2017年05月18日 13:37
  • 1140

生成有数字和字母生成的不重复的验证码

import java.util.Random;//生成有数字和字母生成的不重复的验证码 public class GenerantRandom { private static fina...
  • u012516914
  • u012516914
  • 2015年11月05日 13:59
  • 1123

在网页上生成由字母和数字组成验证码的简单实现

以下代码用于实现在页面上显示由字母和数字组成的简单验证码           效果图: package cn.itcast.response; import ja...
  • bear06
  • bear06
  • 2016年11月26日 20:00
  • 506

Java随机生成字母数字组合的验证码

字母与数字的ASCII码 目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Informatio...
  • qq_36948778
  • qq_36948778
  • 2017年05月18日 13:37
  • 1140

Java版纯字母、纯数字、字母数字组合验证码的生成

所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰,例如随机画数条直线或者画一些点,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。验证码...
  • aboy123
  • aboy123
  • 2013年08月07日 11:10
  • 8910

在网页上生成由字母和数字组成验证码的简单实现

以下代码用于实现在页面上显示由字母和数字组成的简单验证码           效果图: package cn.itcast.response; import ja...
  • bear06
  • bear06
  • 2016年11月26日 20:00
  • 506

PHP实现四位数字+字母验证码

一、新建captcha.php,写入以下代码:
  • LYHVOYAGE
  • LYHVOYAGE
  • 2016年04月27日 16:05
  • 1495

Servlet仿CSDN动态验证码的生成-带数字和字母

实现的思路: 首先,需要创建一个Servlet。该Servlet通过字节型响应给客户端返回一个图片,该图片是通过JDK中Java 2D的类库来生成一个图片。图片的生成是依靠一个随机数来完成,然后将这个...
  • Evankaka
  • Evankaka
  • 2015年06月23日 22:48
  • 3845

Java-验证码生成(数字+字母)

package util;import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.aw...
  • wxgxgp
  • wxgxgp
  • 2017年07月13日 18:01
  • 379
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数字和字母组合并生成图片的验证码祥解
举报原因:
原因补充:

(最多只允许输入30个字)