欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp下的一个很简单的验证码程序第1/3页

程序员文章站 2022-03-10 14:22:50
主程序共三个  我的调用方式 
主程序共三个 

我的调用方式 <script language="javascript" src="/verify/num.asp"></script> 
验证方式 if trim(loginnum)<>trim(session("loginnum")) then 
response.write error("验证码错误!") 
response.end 
end if 


num.asp 

<% 
'### to encrypt/decrypt include this code in your page 
'### strmyencryptedstring = encryptstring(strstring) 
'### strmydecryptedstring = decryptstring(strmyencryptedstring) 
'### you are free to use this code as long as credits remain in place 
'### also if you improve this code let me know. 

private function encryptstring(strstring) 
'#################################################################### 
'### crypt function ? 2001 by slavic kozyuk grindkore@yahoo.com ### 
'### arguments: strstring <--- string you wish to encrypt ### 
'### output: encrypted hex string ### 
'#################################################################### 

dim charhexset, intstringlen, strtemp, strraw, i, intkey, intoffset 
randomize timer 

intkey = round((rnd * 1000000) + 1000000) '##### key bitsize 
intoffset = round((rnd * 1000000) + 1000000) '##### keyoffset bitsize 

if isnull(strstring) = false then 
strraw = strstring 
intstringlen = len(strraw) 

for i = 0 to intstringlen - 1 
strtemp = left(strraw, 1) 
strraw = right(strraw, len(strraw) - 1) 
charhexset = charhexset & hex(asc(strtemp) * intkey)& hex(intkey) 
next 

encryptstring = charhexset & "|" & hex(intoffset + intkey) & "|" & hex(intoffset) 
else 
encryptstring = "" 
end if 
end function 



private function decryptstring(strcryptstring) 
'#################################################################### 
'### crypt function ? 2001 by slavic kozyuk grindkore@yahoo.com ### 
'### arguments: encrypted hex stringt ### 
'### output: decrypted ascii string ### 
'#################################################################### 
'### note this function uses hexconv() and get_hxno() functions ### 
'### so make sure they are not removed ### 
'#################################################################### 

dim strraw, arhexcharset, i, intkey, intoffset, strrawkey, strhexcrypdata 


strrawkey = right(strcryptstring, len(strcryptstring) - instr(strcryptstring, "|")) 
intoffset = right(strrawkey, len(strrawkey) - instr(strrawkey,"|")) 
intkey = hexconv(left(strrawkey, instr(strrawkey, "|") - 1)) - hexconv(intoffset) 
strhexcrypdata = left(strcryptstring, len(strcryptstring) - (len(strrawkey) + 1)) 


arhexcharset = split(strhexcrypdata, hex(intkey)) 

for i=0 to ubound(arhexcharset) 
strraw = strraw & chr(hexconv(arhexcharset(i))/intkey) 
next 

decryptstring = strraw 
end function 


private function hexconv(hexvar) 
dim hxx, hxx_var, multiply 
if hexvar <> "" then 
hexvar = ucase(hexvar) 
hexvar = strreverse(hexvar) 
dim hx() 
redim hx(len(hexvar)) 
hxx = 0 
hxx_var = 0 
for hxx = 1 to len(hexvar) 
if multiply = "" then multiply = 1 
hx(hxx) = mid(hexvar,hxx,1) 
hxx_var = (get_hxno(hx(hxx)) * multiply) + hxx_var 
multiply = (multiply * 16) 
next 
hexvar = hxx_var 
hexconv = hexvar 
end if 
end function 

private function get_hxno(ghx) 
if ghx = "a" then 
ghx = 10 
elseif ghx = "b" then 
ghx = 11 
elseif ghx = "c" then 
ghx = 12 
elseif ghx = "d" then 
ghx = 13 
elseif ghx = "e" then 
ghx = 14 
elseif ghx = "f" then 
ghx = 15 
end if 
get_hxno = ghx 
end function 

randomize 
num = int(7999*rnd+2000) '计数器的值 
num2 = encryptstring(num) 
session("loginnum")=num 
%> 
document.write("<img src='/verify/count.asp?sksid=<%=num2%>'>") ' 这里是调用图片的路径 

count.asp 
1