介绍一个根据随机生成的字符串生成图片的组件!做认证码

kaxi 2003-07-17 01:04:42
最好可以定仪颜色 字体的
谢谢
...全文
62 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
numcode.asp
--------------------------------------------
<%
Dim a(10,10)

a(0,1) = "0x3c" '数字0
a(0,2) = "0x66"
a(0,3) = "0xc3"
a(0,4) = "0xc3"
a(0,5) = "0xc3"
a(0,6) = "0xc3"
a(0,7) = "0xc3"
a(0,8) = "0xc3"
a(0,9) = "0x66"
a(0,10)= "0x3c"

a(1,1) = "0x18" '数字1
a(1,2) = "0x1c"
a(1,3) = "0x18"
a(1,4) = "0x18"
a(1,5) = "0x18"
a(1,6) = "0x18"
a(1,7) = "0x18"
a(1,8) = "0x18"
a(1,9) = "0x18"
a(0,10)= "0x7e"

a(2,1) = "0x3c" '数字2
a(2,2) = "0x66"
a(2,3) = "0x60"
a(2,4) = "0x60"
a(2,5) = "0x30"
a(2,6) = "0x18"
a(2,7) = "0x0c"
a(2,8) = "0x06"
a(2,9) = "0x06"
a(2,10)= "0x7e"

a(3,1) = "0x3c" '数字3
a(3,2) = "0x66"
a(3,3) = "0xc0"
a(3,4) = "0x60"
a(3,5) = "0x1c"
a(3,6) = "0x60"
a(3,7) = "0xc0"
a(3,8) = "0xc0"
a(3,9) = "0x66"
a(3,10)= "0x38"

a(4,1) = "0x38" '数字4
a(4,2) = "0x3c"
a(4,3) = "0x36"
a(4,4) = "0x33"
a(4,5) = "0x33"
a(4,6) = "0x33"
a(4,7) = "0xff"
a(4,8) = "0x30"
a(4,9) = "0x30"
a(4,10)= "0xfe"

a(5,1) = "0xfe" '数字5
a(5,2) = "0xfe"
a(5,3) = "0x06"
a(5,4) = "0x06"
a(5,5) = "0x3e"
a(5,6) = "0x60"
a(5,7) = "0xc0"
a(5,8) = "0xc3"
a(5,9) = "0x66"
a(5,10)= "0x3c"

a(6,1) = "0x60" '数字6
a(6,2) = "0x30"
a(6,3) = "0x18"
a(6,4) = "0x0c"
a(6,5) = "0x3e"
a(6,6) = "0x63"
a(6,7) = "0xc3"
a(6,8) = "0xc3"
a(6,9) = "0x66"
a(6,10) ="0x3c"

a(7,1) = "0xff" '数字7
a(7,2) = "0xc0"
a(7,3) = "0x60"
a(7,4) = "0x30"
a(7,5) = "0x18"
a(7,6) = "0x18"
a(7,7) = "0x18"
a(7,8) = "0x18"
a(7,9) = "0x18"
a(7,10)= "0x18"

a(8,1) = "0x3c" '数字8
a(8,2) = "0x66"
a(8,3) = "0xc3"
a(8,4) = "0x66"
a(8,5) = "0x3c"
a(8,6) = "0x66"
a(8,7) = "0xc3"
a(8,8) = "0xc3"
a(8,9) = "0x66"
a(8,10)= "0x3c"

a(9,1) = "0x3c" '数字9
a(9,2) = "0x66"
a(9,3) = "0xc3"
a(9,4) = "0xc3"
a(9,5) = "0x66"
a(9,6) = "0x3c"
a(9,7) = "0x18"
a(9,8) = "0x0c"
a(9,9) = "0x06"
a(9,10)= "0x03"
%>
---------------------------------------
xbm.asp
-----------------------------------------
<!--#include file="numcode.asp"-->
<%
Response.Buffer = True
With Response
.Expires = -1
.AddHeader "Pragma","no-cache"
.AddHeader "cache-ctrol","no-cache"
End With

Dim num
Randomize
num = Int(7999 * Rnd + 2000)
Session("validateCode") = num

Dim Image
Dim Width, Height
Dim digtal
Dim Length
Dim sort
Dim hc
Length = 4
hc = chr(13) & chr(10)

Redim sort(Length)

digital = ""
For I = 1 To Length - Len(num)
digital = digital & "0"
Next
For I = 1 To Len(num)
digital = digital & Mid(num, I, 1)
Next
For I = 1 To Len(digital)
sort(I) = Mid(digital, I, 1)
Next
Width = 8 * Len(digital)
Height = 10

Response.ContentType = "image/x-xbitmap"

Image = "#define counter_width " & Width & hc
Image = Image & "#define counter_height " & Height & hc
Image = Image & "static unsigned char counter_bits[] = {" & hc

For I = 1 To Height
For J = 1 To Length
Image = Image & a(sort(J),I) & ","
Next
Next

Image = Left(Image, Len(Image) - 1)
Image = Image & "};" & hc

Response.Write Image
%>
回复
szhuk 2003-07-17
这个问题很简单,自己做出相应的图片:再产生一个随机字符串,根据字符串中的字符引用不同的图片就可以了
建议注意有些相近形体的数字或字符比如1和小写L 0和O等的问题
回复
bubuy 2003-07-17
一个随机数子,看能有启发,应该不难作吧

Randomize
Right(CStr(Rnd() * 1000000000000000), 8)
**********************************************
'函数 :GenSID
'描述 :生成一个指定位数的随机数
'参数 :digits为随机数位数
'日期 :2002-10-8

Function GenSID(digits)
dim output,num
dim char_array(63)
char_array(0)="0"
char_array(1) ="1"
char_array(2) = "2"
char_array(3) = "3"
char_array(4) = "4"
char_array(5) = "5"
char_array(6) = "6"
char_array(7) = "7"
char_array(8) = "8"
char_array(9) = "9"
char_array(10) = "A"
char_array(11) = "B"
char_array(12) = "C"
char_array(13) = "D"
char_array(14) = "E"
char_array(15) = "F"
char_array(16) = "G"
char_array(17) = "H"
char_array(18) = "I"
char_array(19) = "J"
char_array(20) = "K"
char_array(21) = "L"
char_array(22) = "M"
char_array(23) = "N"
char_array(24) = "O"
char_array(25) = "P"
char_array(26) = "Q"
char_array(27) = "R"
char_array(28) = "S"
char_array(29) = "T"
char_array(30) = "U"
char_array(31) = "V"
char_array(32) = "W"
char_array(33) = "X"
char_array(34) = "Y"
char_array(35) = "Z"
char_array(36) = "_"
char_array(37) = "!"
char_array(38) = "a"
char_array(39) = "b"
char_array(40) = "c"
char_array(41) = "d"
char_array(42) = "e"
char_array(43) = "f"
char_array(44) = "g"
char_array(45) = "h"
char_array(46) = "i"
char_array(47) = "j"
char_array(48) = "k"
char_array(49) = "l"
char_array(50) = "m"
char_array(51) = "n"
char_array(52) = "o"
char_array(53) = "p"
char_array(54) = "q"
char_array(55) = "r"
char_array(56) = "s"
char_array(57) = "t"
char_array(58) = "u"
char_array(59) = "v"
char_array(60) = "w"
char_array(61) = "x"
char_array(62) = "y"
char_array(63) = "z"

randomize

do while len(output)< CInt( digits)
num = char_array(Int(63 * Rnd + 0))
output = output + num
loop

GenSID = output

End Function
回复
Jaron 2003-07-17
可以生成图片

不需要任何组件即可。请浏览以下文章:

http://www.jiangdu.net/Technology/6/2003-05/20030510152727-100017.html

演示:
http://gov.cnzone.net/admin 那个小图片就是生成结果
回复
jarodzhao 2003-07-17
ASP能生成图片吗???
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告