|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。程序|考证码#####版权一切转载请保存感谢互助
#####部分程序取自收集
#####扬子
#####Email:yangzinet@hotmail.com
#####QQ:21112856
#####WebSite:www.tingfo.net
一共4个页面:form.asp;chk.asp;num.asp;count.asp
失掉一个随即数字。加密!
解密后成成XBM图片
使用session判别
form.asp
<%
###Toencrypt/decryptincludethiscodeinyourpage
###strMyEncryptedString=EncryptString(strString)
###strMyDecryptedString=DeCryptString(strMyEncryptedString)
###Youarefreetousethiscodeaslongascreditsremaininplace
###alsoifyouimprovethiscodeletmeknow.
PrivateFunctionEncryptString(strString)
####################################################################
###CryptFunction(C)2001bySlavicKozyukgrindkore@yahoo.com###
###Arguments:strString<---Stringyouwishtoencrypt###
###Output:EncryptedHEXstring###
####################################################################
DimCharHexSet,intStringLen,strTemp,strRAW,i,intKey,intOffSet
RandomizeTimer
intKey=Round((RND*1000000)+1000000)#####KeyBitsize
intOffSet=Round((RND*1000000)+1000000)#####KeyOffSetBitsize
IfIsNull(strString)=FalseThen
strRAW=strString
intStringLen=Len(strRAW)
Fori=0tointStringLen-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=""
EndIf
EndFunction
PrivateFunctionDeCryptString(strCryptString)
####################################################################
###CryptFunction(C)2001bySlavicKozyukgrindkore@yahoo.com###
###Arguments:EncryptedHEXstringt###
###Output:DecryptedASCIIstring###
####################################################################
###NotethisfunctionusesHexConv()andget_hxno()functions###
###somakesuretheyarenotremoved###
####################################################################
DimstrRAW,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))
Fori=0toUBound(arHexCharSet)
strRAW=strRAW&Chr(HexConv(arHexCharSet(i))/intKey)
Next
DeCryptString=strRAW
EndFunction
PrivateFunctionHexConv(hexVar)
Dimhxx,hxx_var,multiply
IFhexVar""THEN
hexVar=UCASE(hexVar)
hexVar=StrReverse(hexVar)
DIMhx()
REDIMhx(LEN(hexVar))
hxx=0
hxx_var=0
FORhxx=1TOLEN(hexVar)
IFmultiply=""THENmultiply=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
ENDIF
EndFunction
PrivateFunctionget_hxno(ghx)
Ifghx="A"Then
ghx=10
ElseIfghx="B"Then
ghx=11
ElseIfghx="C"Then
ghx=12
ElseIfghx="D"Then
ghx=13
ElseIfghx="E"Then
ghx=14
ElseIfghx="F"Then
ghx=15
EndIf
get_hxno=ghx
EndFunction
%>
<%
randomize
num=int(7999*rnd+2000)计数器的值
num2=EncryptString(num)
session("pwdt")=num
%>
<formaction="chk.asp"method=post>
请输出考证码:<inputtype="text"name="pwds">
<imgsrc="count.asp?sksid=<%=num2%>"><inputtype=submitvalue=提交>
</form>
chk.asp
<%
iftrim(request.form("pwds"))trim(session("pwdt"))then
%>
输出毛病:应当为:<%=session("pwdt")%>,可你输出的是:<%=request.form("pwds")%>
<%
else
%>
输出准确
<%endif%>
count.asp
<!--#includefile="num.asp"-->
<%
###Toencrypt/decryptincludethiscodeinyourpage
###strMyEncryptedString=EncryptString(strString)
###strMyDecryptedString=DeCryptString(strMyEncryptedString)
###Youarefreetousethiscodeaslongascreditsremaininplace
###alsoifyouimprovethiscodeletmeknow.
PrivateFunctionEncryptString(strString)
####################################################################
###CryptFunction(C)2001bySlavicKozyukgrindkore@yahoo.com###
###Arguments:strString<---Stringyouwishtoencrypt###
###Output:EncryptedHEXstring###
####################################################################
DimCharHexSet,intStringLen,strTemp,strRAW,i,intKey,intOffSet
RandomizeTimer
intKey=Round((RND*1000000)+1000000)#####KeyBitsize
intOffSet=Round((RND*1000000)+1000000)#####KeyOffSetBitsize
IfIsNull(strString)=FalseThen
strRAW=strString
intStringLen=Len(strRAW)
Fori=0tointStringLen-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=""
EndIf
EndFunction
PrivateFunctionDeCryptString(strCryptString)
####################################################################
###CryptFunction(C)2001bySlavicKozyukgrindkore@yahoo.com###
###Arguments:EncryptedHEXstringt###
###Output:DecryptedASCIIstring###
####################################################################
###NotethisfunctionusesHexConv()andget_hxno()functions###
###somakesuretheyarenotremoved###
####################################################################
DimstrRAW,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))
Fori=0toUBound(arHexCharSet)
strRAW=strRAW&Chr(HexConv(arHexCharSet(i))/intKey)
Next
DeCryptString=strRAW
EndFunction
PrivateFunctionHexConv(hexVar)
Dimhxx,hxx_var,multiply
IFhexVar""THEN
hexVar=UCASE(hexVar)
hexVar=StrReverse(hexVar)
DIMhx()
REDIMhx(LEN(hexVar))
hxx=0
hxx_var=0
FORhxx=1TOLEN(hexVar)
IFmultiply=""THENmultiply=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
ENDIF
EndFunction
PrivateFunctionget_hxno(ghx)
Ifghx="A"Then
ghx=10
ElseIfghx="B"Then
ghx=11
ElseIfghx="C"Then
ghx=12
ElseIfghx="D"Then
ghx=13
ElseIfghx="E"Then
ghx=14
ElseIfghx="F"Then
ghx=15
EndIf
get_hxno=ghx
EndFunction
%>
<%
DimImage
DimWidth,Height
Dimnum
Dimdigtal
DimLength
Dimsort
Length=4自定计数器长度
Redimsort(Length)
num=cint(DeCryptString(request.querystring("sksid")))
digital=""
ForI=1ToLength-Len(num)补0
digital=digital&"0"
Next
ForI=1ToLen(num)
digital=digital&Mid(num,I,1)
Next
ForI=1ToLen(digital)
sort(I)=Mid(digital,I,1)
Next
Width=8*Len(digital)图象的宽度
Height=10图象的高度,在本例中为流动值
Response.ContentType="image/x-xbitmap"
hc=chr(13)&chr(10)
Image="#definecounter_width"&Width&hc
Image=Image&"#definecounter_height"&Height&hc
Image=Image&"staticunsignedcharcounter_bits[]={"&hc
ForI=1ToHeight
ForJ=1ToLength
Image=Image&a(sort(J),I)&","
Next
Next
Image=Left(Image,Len(Image)-1)往失落最初一个逗号
Image=Image&"};"&hc
%>
<%
Response.WriteImage
%>
num.asp
<%
Dima(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"
%>对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。 |
|