ASP一个很简单的验证码程序

王朝asp·作者佚名  2006-11-24
宽屏版  字体: |||超大  

原程序

http://vifo.vicp.net:8088/datalib/ShowTopic.asp?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 ###

'####################################################################

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有