Chinaunix首页 | 论坛 | 博客
  • 博客访问: 236956
  • 博文数量: 127
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1545
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-17 01:33
个人简介

知码网伴您成长

文章分类

全部博文(127)

文章存档

2015年(10)

2014年(4)

2013年(113)

我的朋友

分类: 网络与安全

2013-04-19 00:30:46

 

关于如何使用代码生产数字以及字母的组合形式生产我们经常看到的图片的验证码呢?

  虽然看起来比较繁琐,而且比较麻烦的样子,感觉一时间没有什么思绪,今天就给大家来分享一段代码,轻松帮助你事先数字字母的组合形式!

设计思路其实很简单,大家一起来看吧

  ycodenum=4 '验证码的位数,或者说成个数

  for i=1 to ycodenum

    Randomize '初始化随机数发生器

    ycode=ycode&Int((9*Rnd))'rnd是随机数,从01之间的任意实数,这里获得09之间的整数

  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。有一点大家注意,服务器不是自己的不能用哦,因为你装不了这组件。

,至于怎么注册,这里就不多说了,网上有很多资料

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

  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"

  setobj=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普通的画图的原理请参

以上内容便是我们知码网为您提供的如何实现字母以及数字组合形式生产的图片,很简单。

关于更多的信息您可以直接到我们知码网进行查看。

知码网是一家服务于软件工作者,为软件工作者提供验证码识别服务的公司,我公司可为你提供高质量高效率的验证码识别服务!

阅读(309) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~