当前位置: 移动技术网 > IT编程>开发语言>.net > 一个很简单的验证码程序

一个很简单的验证码程序

2018年10月25日  | 移动技术网IT编程  | 我要评论

初夏甜心,邓朴方携千亿潜逃,灰原哀喜欢柯南吗

原程序
https://vifo.vicp.net:8088/datalib/showtopic.?id=108:10:1:1

主程序共三个

我的调用方式 <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


<!--#include file="numimg.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


%>


<%
dim image
dim width, height
dim num
dim digtal
dim length
dim sort
length = 4 自定计数器长度

redim sort( length )

num=cint(decryptstring(request.querystring("sksid")))
digital = ""
for i = 1 to length -len( num ) 补0
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) =

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网